タグ

Cに関するt_43zのブックマーク (47)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • How to C (as of 2016)

    How to C in 2016 This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time. (Update: Many people have submitted revisions, notes, and improvements. All contributions have been incorporated throughout the pa

    t_43z
    t_43z 2016/01/29
  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
    t_43z
    t_43z 2010/03/16
  • Androidアプリ向けC/C++ライブラリ開発キットの新版、3DグラフィックスAPIに対応

    Googleは米国時間2010年3月8日、携帯電話機向けソフトウエア基盤「Android」用アプリケーションの一部をC/C++言語で記述できるようにする開発キットの新版「Android Native Development Kit(NDK)r3」を公開したと発表した。WindowsMac OS X/Linux用バイナリを開発者向けWebサイトで無償ダウンロード提供している。 新版はAndroid 1.5以上に対応しており、Android 2.0(APIレベル5)以上の場合は3次元グラフィックスAPI「OpenGL ES 2.0」の利用が可能。ツールをC/C++コンパイラGCC 4.4.0対応にアップグレードしたため、従来より小さく効率的なコードが生成できるという。 Android NDKは、Androidアプリケーションから呼び出し可能なC/C++ライブラリを開発できる。仮想マシン「D

    Androidアプリ向けC/C++ライブラリ開発キットの新版、3DグラフィックスAPIに対応
  • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT

    インターネットの普及に加えて、リッチクライアント/RIAの発展とともに、アプリケーションの形態は、C/S(クライアント/サーバ)システムから、Webアプリケーションシステムにシフトしています。一般の情報発信システムだけではなく、企業の基幹情報システムまで、盛んにWebアプリケーションで構築するようになりました。 この変化の主役であるといわれる、Java技術は、Webアプリケーションシステムの発展とともに、ネットワークの親和性や、プラットフォーム適用の多様性で、広く受け入れられて、Webアプリケーションシステム開発の基盤技術になっています。 これまでのC/Sシステムでは、サーバロジックはC/C++で実装されるケースが一般的でした。C/SシステムからWebアプリケーションシステムにシフトする際に、Java技術を導入することを決めた場合、Java技術で、すべて新規開発するのは1つの選択肢ですが、

  • プログラミング言語Cについて知ろう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) プログラミング言語Cは開発の仕事に役立つ人気のあるプログラミング言語です。 この連載では、Cでのソフトウェア開発をこれから始めようという方や、使った経験はあるが勉強し直したいという方のために、基をきちんと押さえながら勉強できるような解説をしていきます。 なるべく正しい文法や作法を身に付けていただくためにJIS規格を基に解説しますが、それだけにこだわらず実際の開発で役に立つことを分かりやすくお伝えしていきます。 Cの成り立ちと規格 まずは、Cの成り立ちと規格について知っておきましょう。ちょっと堅苦しい感じがするかもしれませんが、歴史を知っているとなぜこういう書き方をするのか、こういった機能があるのかといったことが分かります。また、規格を知っているとプログラミングをしていて何か

    プログラミング言語Cについて知ろう
  • ウノウラボ Unoh Labs: C/C++でFastCGIを作る

    こんにちは satoです。 現在 Ruby on Rails で書かれた アプリケーションの 一部のURIを高速化するために、lighttpd + FastCGI で 書き直しています。FastCGI は あらかじめ プロセスを常駐させておき、リクエストが来た際に、常駐しているプロセスに Unix domain socket あるいは TCP/IP で通信を行い プロセス起動時のオーバーヘッドを無くすことにより、処理を高速化します。今回は lighttpd + FastCGI で Hello word を作る 解説します。 まず lighttpd と FastCGI を 用意します 環境はCentOS5です。 lighttpd: yum install lighttpd FastCGI: wget http://www.fastcgi.com/dist/fcgi.tar.gz tar xz

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • Adobe Alchemy登場、C/C++アプリをFlashで動作させる研究にLLVM技術採用 | エンタープライズ | マイコミジャーナル

    Adobe Alchemy 2008年7月、C言語で開発されたアプリケーションやPythonスクリプトがFlash Playerで動作するようになったという報告が複数のブログに掲載されていた。どうやらこの取り組みは一時的なものでも噂でもコンセプトプルーフでもなかったようだ。 Adobe LabsにAlchemyと呼ばれるプロジェクトが登場した。噂されていた内容がそのままプロジェクトになっている。 AlchemyはC/C++で開発されたコードをActionScript仮想マシン(AVM2)で動作するコードにコンパイルするための研究プロジェクトコード名。C/C++で開発された既存のライブラリをFlash PlayerやAdobe AIRで動作するWebアプリケーションから活用できるようにすることを目指している。Flash PlayerやAdobe AIRのポテンシャルを一気に向上させる可能性が

  • C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記

    はじめに Adobe から C/C++ で書いたコードを Flash や AIR で動かす Alchemy というものがリリースされましたね! Alchemy - Adobe Labs これはすごい!ということで、少し試してみたいと思います。 その様子をリアルタイムに書いていきます。ちゃんと出来るかな 環境 OS は Mac OS X で gcc 、 java は入っているものとします。 ホームディレクトリ(/Users/amachang)に AlchemyTest というディレクトリを作って作業します。 インストール まずは、いろいろインストールします。 Flash Player 10 Debugger Version Adobe Flash Player - Debug Downloads ここからダウンロードしてきて、普通にインストールします。 Flex SDK 以下から Flex

    C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記
    t_43z
    t_43z 2008/11/19
    Adobeやるなぁ。
  • 【ハウツー】ゼロからはじめるC言語 第10回(最終回) - ポインタ編 (1) ポインタと変数とメモリアドレス | パソコン | マイコミジャーナル

    ポインタとは ポインタはC言語を理解する上でもっとも難解な存在だと言われています。ポインタの概念を理解するためには、システムがメモリをどのように管理しているかを理解する必要がありますし、ポインタの仕組みを理解していても、その扱いを間違えればプログラムはたちまちクラッシュしてしまいます。 ポインタは、変数がデータを保存している仕組みと深く関係しています。プログラミング言語では、データは識別子を持った変数に保存されます。しかし、物理的なコンピュータの中では主記憶装置(いわゆるメモリ)にデータが保存されます。通常、メモリは8ビット単位で区切られたアドレスを持ちます。システムは変数のような名前ではなく、整数で表現可能なアドレスによってデータの位置を特定しています。32ビットコンピュータに搭載できるメモリの最大容量が4GBという制限があるのも、32ビットの整数で表現できるアドレス範囲が4,294,9

    t_43z
    t_43z 2008/10/17
  • Head First C#

    Andrew Stellman, Jennifer Greene 著 、木下 哲也 訳、佐藤 嘉一 技術監修 TOPICS Head First , Programming , C# 発行年月日 2008年10月 PRINT LENGTH 592 ISBN 978-4-87311-383-8 原書 Head First C# FORMAT PDF 楽しいイラスト満載、親しみやすい語り口でわかりやすいと大人気のHead Firstシリーズに新たにC#バージョンが登場!プログラミングの基知識と実際の実装方法を詳しく解説します。プログラミングがまったく初めてという読者でも大丈夫。挫折することなく簡単にC#アプリケーションの構築ができます。C#初心者向け、ビジュアル重視の楽しい入門書です。C# 3.0対応。 推薦のことば 新しい世界への足がかり C#との付き合いは、2002年の春からだから、もう

    Head First C#
    t_43z
    t_43z 2008/10/02
  • Part1 Visual Basic,C#,C++でプログラムを作ってみよう

    Part1 Visual Basic,C#,C++でプログラムを作ってみよう Visual Studio 2008の魅力を確認する これまでVisual Studioを使ってきた人はもちろん,これまで他の開発ツールを使ってきたという人,これまでプログラミングをしたことがないという人にも,最新版のVisual Studio 2008はぜひ使ってみてほしいツールです。Visual Studio 2008 Team Suite Beta 2日語版」を用いたプログラム作成入門をお送りします。 マイクロソフトは2007年12月14日にVisual Studio 2008日語版の出荷を始めました。最初はMSDN(Microsoft Developer Network)の会員向けダウンロードで,続いて無償版「Visual Studio 2008 Express Edition」(Visual Bas

    Part1 Visual Basic,C#,C++でプログラムを作ってみよう
  • ぜんぜん知らない開発言語をてっとりばやく覚える方法 C# 編 - 帝国の野望ブログ - ものえおさむ - builder by ZDNet Japan

    はじめに このブログでは Visual C# 2008 Express Edition (無償) を使用した Windows アプリケーションに作り方について説明しています。 Visual C# 2008 Express Edition (無償) の入手方法については この記事 を、プロジェクトのコンパイル方法については この記事を参照してください。 タイトルにあるとおり、今回は未経験の開発言語でとりあえずプログラムを書けるようにするための、てっとりばやい方法について書いてみたいと思います。 コードを書く仕事に携わっていると、仕事の要件や技術の革新、開発製品のディスコン、あるいは趣味嗜好、心境の変化などで新しい開発言語を使用する状況になることがあります。 しかし、開発言語の習得というのは、他人との関係を築くのに似てそう簡単ではありません。 深く理解し、心の底から分かりあえるまでにはそれなり

    t_43z
    t_43z 2008/08/20
  • 高反発マットレスの選び方 | アフィブログに騙されない為の高反発マットレス手記

    ウレタン系高反発マットレスでよく言及されるのが密度です。それを頑張って分かりやすく説明してみます。

  • Google、distccの大幅な高速化に成功 - C/C++ビルド高速化 | エンタープライズ | マイコミジャーナル

    C/C++やObjective C、Objective C++で開発されたアプリケーションを分散コンパイルできるようにするためのツールにdistccがある。distccを使うと、distccがインストールされたマシンの間でビルドを分散して実行するようになるため、ローカルでビルドする場合と比較して大幅にビルド時間を短縮できる。 distccはもともとの開発者であるMartin Pool氏が2004年に公開したdistcc 2.18.3を最後にアップデートが実施されてこなかったが、今回GoogleBuild Tools Teamによって改良された最新バージョンdistcc 3.0が公開された。従来のdistcc 2.18.3と比較してビルド時間がさらに短縮されているところに大きな特徴がある。 もともとGoogleでは数百万行におよぶコードを持っているC/C++アプリケーションのコンパイルには

  • 【ハウツー】ゼロからはじめるC言語 - 型・定数編 (1) C言語で扱うデータ | パソコン | マイコミジャーナル

    現代のコンピュータは、すでに計算機の枠に収まらず、あらゆるメディアを表現する「表現機」の様相を呈していますが、しかし、その根源は単純な算術計算を目的に設計された計算機です。たまたま、コンピュータは記述可能なあらゆるモデルをシミュレートし、再現する能力を持っていたため、現在のメディアとしてのコンピュータが発達したのです。コンピュータ上でシミュレートとされるテキスト、グラフィック、サウンドなど、あらゆるメディアの原始的な姿は値です。稿をご覧になっている読者の皆様は、コンピュータ上のあらゆるデータが2進数であることはご存じでしょう。 C言語のようなプログラミング言語で扱うデータも、その中身は2進数の値です。あらゆるデータは 1バイト(8桁)の2進数を羅列したものにすぎませんが、そのままでは扱いが厄介です。そこで「型」という考え方が登場します。型は、操作対象のデータがどのような性質や構造をもって

    t_43z
    t_43z 2008/07/08
  • やはりCのポインタは難しいものだ…… - 神様なんて信じない僕らのために

    ポインタと配列は一緒のもの? 違うよ、全然違うよ。 前に、同じ年の人が一時的に今の職場に来て、C言語できる。というから、ポインタと配列の違いが解かります?って聞いたら 「え?ポインタも配列も同じじゃないっすか。」 と言われた。 そうだよね。理解してる人に取っては、特に何でもないものなんだと思う。 char szMsg1[]; char *szMsg2; という宣言があったら、 C言語のポインタを理解している人に取ってはszMsg1 とszMsg2 は同じ物じゃないだろうか? なんか、前もこんな話があったような気がするけど、これらは全然違うよ。 少なくとも「ポインタ変数」は対象となる変数の場所(アドレス)を格納可能な変数であり、 「配列変数」は配列の領域を確保し、配列としての名前を持つ変数である。 ポインタは代入可能だが、配列名に対し代入することはできない。 また、配列は関数に渡すこともでき

    やはりCのポインタは難しいものだ…… - 神様なんて信じない僕らのために
    t_43z
    t_43z 2008/07/08
  • 【ハウツー】ゼロからはじめるC言語 - 関数編 (1) C言語と関数の概要 | パソコン | マイコミジャーナル

    今回は、C言語の基的な文法をご説明します。プログラミング言語には、私たちが話す日語のような曖昧さがなく、明確に文法が定められています。そのため、コード内に記述するすべての文字や記号には意味があり、文法に定められていない書き方をしている場合はコンパイルできません。C言語の文法は、国際標準化機構ISOによって定められています。 C言語の標準規格は、古くはC言語の開発者であるBrian Wilson KernighanとDennis MacAlistair Ritchieによる共著「The C Programming Language」(プログラミング言語C)から始まります。標準団体による標準化がおこなわれる前は、通称K&Rと呼ばれるこの書籍が事実上の規格書として扱われ、今でもC言語ファンの間では聖書として親しまれています。後にISO/IEC 9899 : 1990が策定され、現在の多くのコ

    t_43z
    t_43z 2008/06/25
  • 【ハウツー】ゼロからはじめるC言語 - 環境構築編 (1) C言語の概要 | パソコン | マイコミジャーナル

    時代に流されない堅実な開発ツール 稿では、80年代から多くの環境で実用され、今もなお多くの現場でプロフェッショナルに愛用されているプログラミング言語 Cについて解説させていただきます。稿の対象読者は、基的なコンピュータの操作方法や基礎的な仕組みについて理解されている、プログラミングに興味のある初学者の方とさせていただきます。プログラミング経験は不問ですが、C言語以外のプログラミングの経験が多少でもあれば、より簡単に読み進めることができるでしょう。 C言語は、専門学校などでも基礎的な技術としてカリキュラムに組み込まれており、一時はプログラマへの登竜門的な言語であると考えられていました。その地位は、現在も変わりませんが、アプリケーション開発が複雑になるにつれて、より生産性や安全性の高い言語が作られ、C言語の役割も限定的になってきています。例えば、Windowsアプリケーション開発ではVi