タグ

Cに関するyohshiyのブックマーク (9)

  • C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造

    以前、Salvatore Sanfilippo氏によって開発されたエディタ「Kilo」を取り上げたところ、高い関心を集めた。Kiloはclocカウントでソースコードが1000行以下で、しかもcursesなどのライブラリも使っていない。VT100の基的なエスケープシーケンスとlibcで提供されている機能だけを用いて実装されたエディタで、シンタックスハイライトにも対応している。C言語1000行程度でここまで実用的なエディタが開発できるというのは、教育向けの素材として興味深い。 連載では、Kiloのソースコードを読み、どのような仕組みでエディタが作られているかについて紹介する。C言語でソフトウェアを開発する際に利用する機能が網羅されており、学習素材としてなかなかのポテンシャルを持っている。エディタがどのように実装されているのかを知るためにも、一度は読んで見てほしいソースコードだ。 頭から読む

    C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造
    yohshiy
    yohshiy 2016/09/29
    curses も使ってないというのはすごいな
  • ZL

    yohshiy
    yohshiy 2016/02/01
    C 互換の C++ 風の新言語。Scheme 風のマクロでクラスなどの初期化をプログラマーが細かくカスタマイズできるようにすることが目的らし。
  • How to Learn C

    yohshiy
    yohshiy 2015/06/01
    Ruby ユーザーのための C 言語入門
  • C言語の開発者によるgoto文の使い方を対象とした実証研究の結果、「goto文は無害だと考えられる」 | スラド デベロッパー

    Edsger Dijkstra氏がgoto文の危険性を主張したのは1968年。それから50年近く経過した現在もgoto文は使われ続けているが、Dijkstra氏が懸念したようなgoto文の無制限な使用が行われているのかどうかという点や、それがバグの原因となるような有害なものなのかどうかといった点については、よくわかっていなかったという。こういった点に関する実証研究が家/.で紹介されている。 家/.「Empirical Study On How C Devs Use Goto In Practice Says "Not Harmful"」より 200万近いC言語のファイルと1万1千件を超えるプロジェクトからランダムに抽出した統計的に有効なサンプルを質的および量的に分析したところ、開発者はほとんどの場合gotoの使用を適切に制限しており、Dijkstra氏が懸念したような無制限な使用は行わ

    yohshiy
    yohshiy 2015/02/16
  • C言語のアセンブリ言語コード化〜直観編 - Qiita

    1. はじめに このテキストではC言語で書かれた簡単な階乗プログラムを元にコンパイラがアセンブリコードを生成する時の考え方を示しました。 2. C言語のソースコード C言語で書かれた階乗のプログラム(元にするプログラムという意味で ソースコード と言います)を次に示します。まずはトレースしてみて動作を確認します。とくに どの経路をたどるかと 変数の値がどのように変化するかに注目してください。 unsigned int fact(unsigned int x) { unsigned int y; if(x == 0) { y = 1; } else { y = x * fact(x - 1); } return y; } void main(void) { unsigned int p; p = fact(3); ... } なお,unsigned int は符号なしの整数という意味です。

    C言語のアセンブリ言語コード化〜直観編 - Qiita
  • BundlerでCのソースを含んだGemは簡単に作れる - Qiita

    ➜ jewelrybox bundler help gem Usage: bundler gem GEM [OPTIONS] Options: -b, [--bin=Generate a binary for your library.] -t, [--test=Generate a test directory for your library: 'rspec' is the default, but 'minitest' is also supported.] -e, [--edit=/path/to/your/editor] # Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR) [--ext=Generate the boilerplate for C ext

    BundlerでCのソースを含んだGemは簡単に作れる - Qiita
    yohshiy
    yohshiy 2014/10/07
  • やはりあった? 高速化に効くシステムコール

    やはりあった? 高速化に効くシステムコール:知ってトクするシステムコール(3)(1/2 ページ) 単純にシステムコールを使えば、プログラムの処理速度が一気に上がるという都合のいい話はありませんと説明してきました。しかし、簡単に使えて、ある程度の処理速度向上を見込めるシステムコールも存在します。今回は、このシステムコールを使うと、どうして処理速度が上がるのかということを解説します。この点を理解すると、プログラムの処理速度を上げるための戦略が見えてくるはずです(編集部) 呼び出すとプログラムの処理性能が上がるシステムコール 前回は、システムコールを直接記述する場合には「使い方を間違えると、まったく性能を発揮できないひどいプログラムができてしまう」ということを、実例を交えて紹介した。標準ライブラリの機能はよく考えて作ってあり、特に強い理由や、はっきりとした目的があるというわけでもなければ、システ

    やはりあった? 高速化に効くシステムコール
    yohshiy
    yohshiy 2012/01/25
  • ISO、C言語の新規格「C1X」を制定 | スラド デベロッパー

    国際標準化機構(ISO)が、C言語の新規格「C1X」を制定した。正式名称は「ISO/IEC 9899:2011」となっている(家/.、The H記事)。 C++言語との互換性に優れ、マルチスレッド機能、ISO/IEC TR 19769:2004に基づくUnicodeサポート、浮動小数点型の特性を調べるマクロや静的アサーション機能などの新機能を追加しているとのこと。

    yohshiy
    yohshiy 2011/12/27
  • システムコールと標準ライブラリ関数の違いを知る

    前回解説したように、システムコールは魔法の関数でもなければ、不思議なものでもなく、カーネルに正直に処理を依頼するものです。今回は、標準ライブラリ関数との違いについて解説します。(編集部) システムコールを使ってみる前に 今回から簡単なシステムコールプログラミングを通じて、いわゆる「システムコール」がどういったものであるかを紹介していこうと思う。システムコールに触れるための環境をどう構築するかという点については、連載:いまさら聞けないVim 第8回「Vimをプログラム開発環境にしてしまおう」に詳しくまとめてある。こちらを参考に環境を構築してほしい。 先に挙げた記事では、FreeBSDとUbuntuを例として環境構築法を解説している。ほかの環境(Mac OS X Lion、Ubuntu 11.10、Solaris 11)を使われている方のために、使用するコマンドをそれぞれの環境で置き換える方法

    システムコールと標準ライブラリ関数の違いを知る
    yohshiy
    yohshiy 2011/12/14
  • 1