Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
ICSE 2016勉強会に参加するために論文リストを確認していたら、40年間のC言語のプラクティスの変遷を追った論文がおもしろかったので紹介する。 対象の論文 論文: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 論文中で使われれたデータ: https://github.com/dspinellis/unix-history-repo 要約 過去40年間のUnixのソースコードを分析し、コーディングスタイルの変化を調査した。その結果、以下のことが分かった。 新しい言語機能は価値のあるものならば採用される レジスタ割り当てをコンパイラに任せるようになる スペースをどこにいれるかなどのコードの書き方が統一されていく 分析対象 1972年以降にリリースされた計66個
(訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「本文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり
ビジターの皆さんへ C言語に関心を寄せていただきありがとうございます。このページは、C言語の面白い問題、パズルのリストです。これまでに友人たちからeメールで送ってもらったり、本で読んだり、インターネットで見つけたり、あるいは自分でC言語でコーディングしていて気づいたりしたプログラムを集めました。 多くのプログラムは、コンパイル、実行され、その振る舞いを示すものです。問題は大まかに次のカテゴリに分けられます。 一般的なタイポエラー。C言語プログラマが頻繁に犯すミスであり、かつ追跡が困難。 初見では非常に理解しがたい小さなプログラム。これらの問題は、他人が書いた優れたコードを読み解く良い訓練になります。 また、全てにGnu/Linux/gccを使っています。掲載順は、それぞれの難易度とは関係ありません。問題解決の助けが必要な場合は、気軽に私に問い合わせてください。連絡先は こちら です。また、
Dmitri Gribenko氏によるBlog記事 "I Do Not Know C" より訳出。原文および訳文のライセンスは CC BY-SA 3.0 に従う。 この記事の目的は、皆に(とくにCプログラマに)「C言語分かってなかった」と言わせることです。 C言語の死角は思っているよりも身近にあり、よくある単純なコードですら 未定義動作(undefined behavior) を含む可能性があると示したいと思います。 記事は質問に対する回答の形をとります。全ての例示コードは別々のファイルに分かれていると考えてください。 (訳注:Qiita/Markdown表現の制約から、読中ネタバレ防止のため文章順序を変更しています。前半には質問のみを、後半には質問と回答の対を訳出しました。) 質問編 1.
SQLite性能評価まとめ SQLite3.4.2の性能について調べた結果をまとめておきます。 調べたのはデータ追加(INSERT)のパフォーマンスです。テーブルに100000件のデータを追加した時の処理時間を測りました。 SQLite性能評価その1 トランザクション明示的指定(BEGINとEND)の効果 SQLite性能評価その2 その1のインメモリ版 SQLite性能評価その3 sqlite3_prepareとsqlite3_stepの効果 SQLite性能評価その4 その3のインメモリ版 SQLite性能評価その5 インメモリ版とC++標準ライブラリコンテナの比較 上記の記事のポイントを以下に列挙します。 大量のデータをINSERTするときに、トランザクションを明示的に指定(BEGINとEND)すると、1500倍速くなる。 sqlite3_prepareとsqlite3_stepを使
Stanse at a glance Stanse was released and is now available in download section. Features Error-finding tool based on static analysis. Target language is C (ANSI C99), but extensible to C#/C++/Java. Full ANSI C99 support, including most GNU C extensions. Modular structure, easy extensibility, fast development. Easy to use interface and error path inspection. Makefile support and batch execution. E
米Intelが並列プログラムを容易にする言語拡張「Intel Cilk Plus」をオープンソース化し、またGCCへの実装が「cilkplus」ブランチで開始されたと発表した。x86_32およびx86_64アーキテクチャでテスト済みというLinux向けランタイムのソースコードも公開されている。 Cilk PlusはIntelが2010年に発表したC/C++向けの言語拡張。1990年代にマサチューセッツ工科大学で開発されたC言語拡張「Cilk」がベースで、プログラムの並列化を容易に実装できるキーワードや関数群が含まれる。Intelは2009年にCilk技術ベンダーのCilk Artsを買収し、Cilkの権利や技術を手に入れている。Cilk PlusはすでにIntelがリリースする「Intel Compiler」に搭載されているが、GCCなどほかのC/C++コンパイラではサポートされていなかっ
前回のCCFinderのネタからこっち、id:Seasons さんから頂いたコメントを読み返しつつ、プログラムの「評価基準」って何だろね?と時折ぐーぐるしてました。 …そ〜いえば、オープンソース系で評価ツールって、何かあったっけなぁ?と思いつつ、適当に ぐーぐるしていたんですが、この手のソフトは Javaが圧倒的にヒットしますねぇ。まぁ、.NET系に比べて年数も違うし、マクロやテンプレートなんていう一歩間違えるとダークサイドなものもありませんからね。 そんな中、ccccっていう冗談みたいなソフトを見つけました。 SourceForge.net: C and C++ Code Counter http://sourceforge.net/projects/cccc UNIXの部屋 検索:cccc (*BSD/Linux/Solaris) http://x68000.q-e-d.net/~68
コード探知機「Sonar」でプロジェクトの深海を探れ!:ユカイ、ツーカイ、カイハツ環境!(17)(1/4 ページ) プロジェクトの深海を照らす「Sonar」とは? 「Sonar」は、スイスのSonarSource S.A.を中心に開発されているコードの品質管理を行うオープンソースのプラットフォームです。LGPLライセンスで提供され、無償で利用可能で、拡張も自由です。 2009年に「Jolt Product Excellence Awards」「Open World Forum Innovation Awards」などを受賞した、いま注目のツールです。 Sonarは、まるで音波探知機を装備した潜水艦のように、コードのさまざまなメトリクス(統計情報)を総合的に集計し、現在の開発の状況を視覚化します。非常に使いやすいWebのUI(ユーザーインターフェイス)で、プロジェクトごとのメトリクスから各パ
注: 長いです。 スクリプト言語でのxUnit実装を使ったことがある方なら、テストを定義するだけでテストが実行されることが当たり前ではないでしょうか。c2.comのWikiによると、これはTest Collectorというそうです。定義したテストを自動的に集めてくる機能のことです。 一般的にTest Collectorの機能は言語が提供するリフレクション機能やメタプログラミング機能を使って実現されます。 例えば、Rubyのtest-unit 2.xでは、リフレクションを使う方法とメタプログラミングを使う方法の両方をサポートしています。リフレクションを使う方法ではObjectSpace.each_object(Class)ですべてのクラスを取得し、その中のTest::Unit::TestCaseのサブクラスを集めます。メタプログラミングを使う方法ではTest::Unit::TestCase.
Latest News 2024-08-08 The Guide to Software Verification with Frama-C is available 2024-08-05 The slides presented at Frama-C Days 2024 are available 2024-06-06 Release of Frama-C 29.0 (Copper) 2024-05-14 Beta release of Frama-C 29.0~beta (Copper) 2024-04-15 Frama-C Days 2024 2024-03-25 Frama-Clang v0.0.15 for Frama-C 28.0 Nickel 2024-03-01 Release of Frama-C 28.1 (Nickel) 2024-02-16 MetAcsl v0.6
GNU ProjectとGCC開発チームは3月25日、オープンソースのコンパイラスイート「GNU Compiler Collection(GCC) 4.6」をリリースした。米Googleの「Go」言語サポートなど、多数の修正や新機能が追加されている。 2010年4月にバージョン4.5を公開してから1年弱でのメジャーリリースとなる。GCC 4.6ではC、C++、Java、Ada、Fortranなどに加え、Googleが2009年11月に発表したGo言語にも対応した。Goは並列処理をサポートし、Pythonなどの動的言語の開発速度とCやC++のようなコンパイル言語の性能を併せ持つとしている。Goは現在LinuxとリアルタイムOSである「RTEMS」で利用でき、Solaris対応も進んでいる段階という。ただしGo言語のサポートはデフォルトでは有効化されておらず、利用する際はビルド時に設定が必要と
Concolic testing (a portmanteau of concrete and symbolic, also known as dynamic symbolic execution) is a hybrid software verification technique that performs symbolic execution, a classical technique that treats program variables as symbolic variables, along a concrete execution (testing on particular inputs) path. Symbolic execution is used in conjunction with an automated theorem prover or const
The LLVM Projectは10月5日、「LLVM Compiler Infrastructure(LLVM) 2.8」をリリースした。C/C++/Objective-CフロントエンドであるClangがC++標準規格に完全に準拠したほか、さまざまな最適化が加えられている。 LLVM(Low Level Virtual Machine)はさまざまなプログラミング言語をサポートするコンパイラ基盤。各種言語をフロントエンド仮想マシン向け中間コードに変換するフロントエンドと、中間コードを実マシン向けの最適なコードに変換するオプティマイザ/コードジェネレータから構成されている。 前バージョンの2.7から5カ月ぶりのリリースとなるLLVM 2.8では、LLVMのコアとなるツール群が幅広く強化された。C/C++/Objective-C向けのフロントエンドであるClangは、C++の国際標準であるI
Twitter上で、@alohakun が言及していた GDB の reverse debugging の機能を使ってみました。 GDB にトレースと逆実行機能入ったのか。 http://www.gnu.org/software/gdb/news/reversible.html http://twitter.com/alohakun/status/4481139191 まずは簡単な使い方を説明したあとに、インストール方法を説明します。 こんなときに便利 「変なこと」が起きている大体の場所がわかっているとき デバッグ中に、大体どこで変なことが起きているかはわかっているけど、細かい場所は特定できていないとき、reverse debuggingが効果を発揮します。 GDBでステップ実行をしていて、「しまった!行きすぎた!」という経験はよくあると思います。こういうとき、今まではプログラムの実行を最
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く