CIL is a front-end for the C programming language that facilitates program analysis and transformation. CIL will parse and typecheck a program, and compile it into a simplified subset of C. goblint-cil is a fork of CIL that supports C99, C11 as well as most of the extensions of the GNU C. It makes many changes to the original CIL in an effort to modernize it and keep up with the latest versions of
結果的に1200行を越えましたが。 kilo 成果物はこれ↓ 参考サイトはこれです↓ インスパイア元↓ 感想 C言語は10年ぶりくらいに書いた 進めていくうちになんとなく思い出すことができた 最初にちゃんと授業で学んだ言語なので懐かしく思った Cに出会っていなければプログラミングしてなかったかもしれないので感慨深い しかしこのレベルのメモリ管理は正直たいへん 「この関数で確保したメモリはこっちの関数で開放されるので問題ありません」みたいな この調子でやっていったらバグる未来しか見えない 1000行・1ファイルというコンセプトは良いのだがファイル分けて管理したいナ〜〜と思った 配列や文字列の操作、メモリ管理がやりやすい別の言語で書き直したい Cを書くの大変だな…という感想を持った 速さはともかく他の言語で書きたい もっとimmutableに… お手本よりも行数が増えた 1行のif文などでもブ
興味深い記事を見つけました。 気に入ったところだけピックアップして紹介するので、ぜひ原文も読んでください。 Zig is an ideal language for incrementally porting existing C code to as I’ll hopefully show. Zigは既存のCのコードをインクリメンタルに(少しずつ)移植するのに理想的な言語です。これからそれを紹介します。 Mini-RV32ima Mini-RV32imaはひとつのCのヘッダファイルからなるRISC-Vのエミュレータです。(このエミュレータでLinuxカーネルを起動することが可能です) 私(元のブログの筆者)はRISC-Vのことをあまり知りません。RISC-Vのリファレンスを見るよりもCのコードを一行ずつ忠実にZigに書き直しました。 最初の一歩 zig はCコンパイラとして使うこともでき
C言語(C++を含む)を習得したい人,ポインタを勉強したい人はgcc-14を使いましょう.難しいところは gcc-14 が丁寧に解説してくれます C言語の難しいところ 例を示します.C言語で記述された,たった6行のソースコードです int main() { int buf[10]; buf[10] = 0; return 0; } このソースコードには問題があります.初見でわかるでしょうか? : : : 問題があるのは buf[10]=0 の部分です.C言語でやりがちなミスですが,これがバグやセキュリティホールの原因になります. C言語が難しい理由は二つあります.この手の問題を見逃しやすい点と,この手の問題を理解することが難しい点の二つです gcc 14 に解説してもらいましょう 上記の6行のソースコードをgcc14を使ってコンパイルしてみます ソースコードのファイル名は test.c と
Orbit, the Open Runtime Binary Instrumentation Tool is a standalone native application profiler for Windows and Linux. It supports native applications written in languages such as C, C++, Rust, or Go. Its main purpose is to help developers identify the performance bottlenecks of a complex application. Orbit can be also used to visualize the execution flow of such applications. The key differentiat
Building a static analyzer into the C compiler offers several advantages over having a separate tool, because the analyzer can track what the compiler and assembler are doing intimately. As a Red Hat employee, I work on GCC, the GNU Compiler Collection. Our static analyzer is still experimental but is making big strides in interesting areas, including a taint mode and an understanding of assembly-
タイトルの通り C/C++言語で使えるコードカバレッジツールを作ってみました。 x86_64 GNU/Linux 向けのバイナリと動作確認のサンプル用シェルスクリプトをGithubで公開しています。 github.com このコードカバレッジツールは covme という名称のシングルバイナリのプログラムです。機能的にはまだまだ充実していなくて、現時点では実用性は低いのですが、簡単なプログラムであればC0レベルのカバレッジを取ることができ、結果をHTMLファイルとして出力します。 covme demo 目次 目次 使い方について どうやってカバレッジを計測しているのか? GDBの利用 DWARFの利用 動機 C/C++ 言語用のコードカバレッジツールがあまりない 組み込みソフトウェアの開発で CI/CD したい covme で実現したいこと どうやってやるのさ? ソースコードについて まとめ
Janet is a functional and imperative programming language. It runs on Windows, Linux, macOS, BSDs, and should run on other systems with some porting. The entire language (core library, interpreter, compiler, assembler, PEG) is less than 1MB. You can also add Janet scripting to an application by embedding a single C source file and a single header. Use Cases Janet makes a good system scripting lang
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く