C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。
@ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは「mmap(2)」だ。ここでは詳しく仕組みを解説しないが、mmap(2)は、プログラムの処理性能に必ず良い影響を与える。 やはりあった? 高速化に効くシステムコール (1/2):知ってトクするシステムコール(3) - @IT それを真に受けたのか、「Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話 - ryochack.blog」のようなブログエントリも
やはりあった? 高速化に効くシステムコール:知ってトクするシステムコール(3)(1/2 ページ) 単純にシステムコールを使えば、プログラムの処理速度が一気に上がるという都合のいい話はありませんと説明してきました。しかし、簡単に使えて、ある程度の処理速度向上を見込めるシステムコールも存在します。今回は、このシステムコールを使うと、どうして処理速度が上がるのかということを解説します。この点を理解すると、プログラムの処理速度を上げるための戦略が見えてくるはずです(編集部) 呼び出すとプログラムの処理性能が上がるシステムコール 前回は、システムコールを直接記述する場合には「使い方を間違えると、まったく性能を発揮できないひどいプログラムができてしまう」ということを、実例を交えて紹介した。標準ライブラリの機能はよく考えて作ってあり、特に強い理由や、はっきりとした目的があるというわけでもなければ、システ
Ruby用拡張ライブラリをCで作る Rubyは、C(あるいはC++)で書いたコードを動的(あるいは静的)にリンクして利用する事ができる。うまく使えば、Rubyで書くより高速な動作が期待できる。 たとえば、GUIライブラリである「Ruby/GTK」は、描画部分にCで書かれたライブラリを利用する事で、実用的な画面描画速度を確保している。 その、Ruby用拡張ライブラリをCで書く方法である。 ■ 拡張ライブラリ作成の流れ Rubyはオブジェクト指向言語である。オブジェクト指向言語におけるプログラムとは、基本的にクラス定義である(と、少なくとも私は思っている)。そこで、ここではクラス定義に話を絞る。 メソッドの実体となる関数を定義する Init関数を作る rb_define_classで、新しいクラスを作る rb_define_methodで、クラスに1で作成したメソッドを追加する Makefil
Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire
変数の宣言の強制 変数のスコープ ループからの脱出 ファイル入出力 print 文関係 引数の取得 標準入出力 環境変数の取得 サブルーチンとの引数のやりとり foreach 文 文字列の連結 文字列のマッチング、比較 文字列の置換 文字列の分解 文字列の統合 文字列の処理 配列 2 次元配列 正規表現 if 構文 連想配列 ( ハッシュ変数 ) rewind eof find_header int と剰余 goto 文 ディレクトリの操作 ファイルテスト演算子 特殊変数 シグナル処理 ヒアドキュメント 配列全体に作用するコマンド ソート 省略形 入出力のバッファリングをしない 配列の要素のシフト 処理内容をファイルに落としてメールする system 文 ◆◆ 変数の宣言の強制 ◆◆ ファイルの先頭に use strict; と書くと、そのファイル中のメイン関数(関数宣言なしに 書き始め
universalchardet / juniversalchardet Mozillaのエンコーディング判別ライブラリであるuniversalchardetを切り出して、Cライブラリ化してみた。さらにJavaにもポーティングしてみた。エンコーディング判別なのにcharacter set detectorとはこれいかに。 C版はLinux/Windowsに対応。Linuxでのインストールは make && make install で。autoconfなどという高尚なものは使っておりません。 文字コードの変換はこちら EncodingConversion Related Works jchardet (Java,旧バージョンのchardet) juniversalchardet(Java,universalchardetのJavaポート) Universal Encoding Dete
以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい
UNIX と C ってのは,やっぱり最悪のコンピュータウィルスだな.この 2 老害のせいで,計算機科学の発達は 20 年遅れた.こいつらのバッドノウハウにそそぎこまれた, 確かに autotools とかバッドノウハウ以外の何者でもないよなぁ。ないともっとアレなんだけど。 で、これを読んで、ふと思い出した。昔 Java-House で高木さんが似たようなこと言ってたような・・・ あった、これだ。 > > 悪しき習慣です。CやC++がプログラミングに携わる人のすべての必携の言語 > > として蔓延りかけてしまったことは、世界の情報産業の生産性をいったいど > > れだけ損失させたか計り知れません。 > > すべての必携の言語にCがなり得たのは、それだけ優れた言語だったからでしょう。 いいえ。一部の人が使うのには優れていますが万人が使うべきものではあり ません。C以外が普及しなかったのは、様々
Next: 目次 C 言語 稚内北星学園大学 情報メディア学部 金山 典世 E-mail: kanayama@wakhok.ac.jp 2001年 目次 1. 初めての C 1. C とは何か? 2. プログラムの作り方 3. 初めての C プログラム 4. 表示を改行したいときは 5. 名前も表示してみよう 6. 課題 1 2. 四則計算 1. 整数変数の宣言 1. 四則演算 2. 代入文 3. 変数の使用 2. 結果の表示 3. 課題 2 3. 制御構造1 判断 1. 簡単な判断 2. 比較演算 3. 真でない場合の判断 4. 更に複雑な判断 5. 日本語とプログラム 6. 課題 3 4. 制御構造1 繰り返し(for文) 1. for 文の書式 2. 括弧の対応関係 -- vi の便利なコマンド 3. ソースプログラムの書き方 4. 課題 4 5. 入力の読み込みと制御構造 1. 入
since:2002.06.02 更新に手が回らずすみません。 ANSI規格でもいいよという方は 御覧ください。m(_ _)m
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く