並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 7410件

新着順 人気順

コンパイラの検索結果321 - 360 件 / 7410件

  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

      ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
    • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

      IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては、Apacheのpreforkというモードが挙げられます。「都度」方式では、コネクションを受け取るたびに生成します。このアーキテクチャの利点は、制御を

        高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
      • inforno :: 個人的Go雑感&メモ

        Googleが Goという新しいプログラミング言語 を出したようで。早速、インストールして軽くドキュメントを流し読みしてみました。 英語なんて読みたくないよ、という人もいるかもしれないし、誰かの役に立つかもしれないので自分用メモおいときます。完全に自分用なんである程度他の言語の知識がある人向けな上、ざっくり流し読みなんで間違ってるかも。 どんな言語? ネイティブコードを吐く、コンパイル型。 速度はCレベル。 GC搭載。ポインタはあるけど、ポインタ演算はできません。 各種アーキに最適化された、それぞれのコンパイラセットを持ちます。例: 6g, 6l : amd64 8g, 8l : i386 linux, mac, naclに対応。 動的型言語と静的型言語のおいしいとこどり。 concurrent処理が組み込まれてます。 個人的雑感 こんな言語設計思想かなあと感じたり とにかく、シンプルな言

        • C++完全理解ガイド Rev1.4.01 - Qiita

          はじめに C++を完全理解したので完全理解ガイドを書く。 最初に言っておくがタイトルは詐欺で、実際はポエムである。 僕は仕事でC++を書いたことはないのでなんか変なことを言っているかも知れない。 ところで無職になったので、普通にC++で職がほしい。 2018年6月から受託で仕事をもらい、毎日C++17を書いています。 2018年9月から雇用され、毎日C++17を書いています。 かなり雑に書いているはずなので、コメント等でどんどんマサカリを投げてほしい。 僕は何者か 工学部を卒業して4年ほど高校の理科教師をやっていたが、現在無職になった人。 工学部を卒業して4年ほど高校の理科教師をやっていた。 最初は良かったのですが、授業に慣れ、このまま自分の成長が止まってしまうのかとなぁと思い、辞めて無職に。 一ヶ月無職を楽しんだあと、某から受託でC++を書く仕事をもらい、C++17を書いている。 主にツ

            C++完全理解ガイド Rev1.4.01 - Qiita
          • プログラミングとなら、できること/図書館となら、できること番外編

            少女:聞きたいことがあるんだけど。プログラミングとかする? 少年:しない。 少女:前に何かちょこちょこっと作ってたことなかった? 少年:コンピュータ周りの雑用をやらせるスクリプトのこと? 大抵は数行くらいの使い捨てだけど。繰り返し使ってるのは、近代デジタルライブラリーからダウンロードして一つのファイルにまとめる奴くらい。 少女:あ、それ欲しい。そういうのってどうやったら作れるようになるの? 少年:うーん、こういうのは禁煙さんが詳しいんだけど。よく使ってるのはPythonってプログラミング言語だけど、これも禁煙さんのオススメだったし。 少女:そうなんだ。ねえ、今度一緒に禁煙さんとこ行かない? 少年:いや、それはちょっと。 少女:あれ?苦手だっけ? 少年:少し。コンピュータの話になると、あの人ちょっと…・・・。 少女:ふーん。じゃあ禁煙さんに教わったこと、教えて。 少年:教わったっていっても大

              プログラミングとなら、できること/図書館となら、できること番外編
            • ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』|ガジェット通信 GetNews

              ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』 いやはや、世の中にはクールで変態なハッカー(褒め言葉)がいるものです。 この『jor1k』というプログラムは、完全にJavascriptで実装されたOR1K(OpenRISC 1000)エミュレーターで、ブラウザ上でLinuxを実行することができてしまいます。 ブラウザ上でLinuxを起動してターミナルでコマンドラインの入出力をするだけであれば、これまでにも「Javascript PC Emulator」というJavascriptで実装されたPCエミュレーターがありました。しかし、『jor1k』のスゴイ所はX Window Systemが起動しGUIもちゃんと操作できることです。たとえば、冒頭の画像は、“お決まり”のxeyesを起動してみたところです。ちらつきはあるものの、目玉が

                ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』|ガジェット通信 GetNews
              • KENJI

                更新履歴 DNS拡張EDNS0の解析 Linuxカーネルをハッキングしてみよう Windowsシステムプログラミング Part 3 64ビット環境でのリバースエンジニアリング Windowsシステムプログラミング Part2 Windowsシステムプログラミング Part1 Contents インフォメーション 「TCP/IPの教科書」サポートページ 「アセンブリ言語の教科書」サポートページ 「ハッカー・プログラミング大全 攻撃編」サポートページ ブログ(はてな) BBS メール このサイトについて テキスト 暗号 詳解 RSA暗号化アルゴリズム 詳解 DES暗号化アルゴリズム crypt() アルゴリズム解析 MD5 メッセージダイジェストアルゴリズム crypt() アルゴリズム解析 (MD5バージョン) TCP/IP IP TCP UDP Header Format(IPv4) Ch

                • 世界で2番目にわかりやすいポインタの話

                  これ以上に解りやすく説明できるという人は、@super_rti までURLを教えて下さい。世界一わかりやすいの看板を差し上げます。

                    世界で2番目にわかりやすいポインタの話
                  • 大学での初心者に対するプログラミング講義ではC言語を使うべきでない - Qiita

                    今日、大学に入って最初のプログラミングの授業があった。それについて少しばかり思うことがあったのでここに記す。以下の文章は、工学部情報系学科一回生の、最初のプログラミング授業について述べたものである。タイトルにもある通り、この文章は「初心者に対する」講義について言ったものであり、機械制御を専攻する学生に対する講義などを言うわけではない。 最初の言語がC 結論から述べよう。最初のプログラミング言語にC言語は向いていない。できないとは言わないが(私が最初に触れた言語もCだが)、より有力な候補がいくらでもある。私の所属する学科には機械分野に進む人も多いので、それに使われるCを、という思惑もあるのだろう。しかし、初心者が「プログラミングを」学ぶ言語としてはお世辞にも良いとは言えない。私が思うプログラミング初心者に向いた言語とは、次の条件を満たすものである。 現在普及している 環境構築が容易(私の大学

                      大学での初心者に対するプログラミング講義ではC言語を使うべきでない - Qiita
                    • PHP5.3.7のcrypt関数のバグはこうして生まれた

                      昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

                        PHP5.3.7のcrypt関数のバグはこうして生まれた
                      • Objective-Cは特殊な言語? - @IT

                        Objective-Cは特殊な言語?:Cocoaの素、Objective-Cを知ろう(1)(1/2 ページ) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう(編集部) 唐突ですが、皆さんは新たに1つのプログラミング言語を修得しようと思い立ったとき、最初に何をしますか。その言語の入門用サイトを見て回る、関連書籍を立ち読みする、サンプルを入手して取りあえず動かしてみる、といったところでしょうか。ちなみに私は書籍が好きで、しかも立ち読みではなく購入派です。 いずれにしても、まずはその言語のコードを目で見て、「いったいどんな言語なのか」というイメージをつかむのが最初の一歩となるでしょう。何かしらのプログラミング経験がある人なら、コードを眺めて、「ああ、あの言語に似ているな」とか「うわ、これはとっつきに

                          Objective-Cは特殊な言語? - @IT
                        • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

                          プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断の食い違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

                            不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
                          • iPhone・Androidアプリ開発: iPhoneアプリ開発入門

                            iPhoneアプリ開発入門 iPhoneアプリ開発環境 iPhoneアプリ開発環境の構築http://digilife.bz/wiki/index.php?iPhone%2F開発環境の構築 iPhone関連書籍 はじめてのiPhone3プログラミング 入門 Objective-C 2.0 (Programmer’s SELECTION)  その他の書籍のリスト iPhone Dev Center iPhone Dev Centerhttps://developer.apple.com/iphone/index.actionSample Codeで参考になるプログラムを探そう。技術的課題はApple Developer Forumsで検索すれば大抵は解決する。 オープンソース Erica Sadunhttp://ericasadun.com/iPhoneDocs/ 書籍「

                            • 漫画家になろう!その夢への一番の近道と言われているのが・・・ | 漫画家になりたい!・・・だけど具体的にどうすればいいの?って悩んでいる人は必見。今いちばん漫画家デビューへの近道といわれている方法を紹介。実際に600人以上が漫画家デビュー、新人賞を受賞実現して夢を叶えてます。次、漫画家デビューの夢を叶えるのはあなた!

                              กลยุทธ์การเดิมพันแบล็คแจ็ค – กลยุทธ์การเดิมพันแบล็คแจ็ค 21หากคุณต้องการกลยุทธ์การเดิมพันแบล็คแจ็คโปรดอ่านด้านล่าง คุณจะได้เรียนรู้กลยุทธ์การเดิมพันแบล็คแจ็คหลายคนนำใบอนุญาตมาเที่ยวบ่อนกาสิโนเพื่อลุ้นรับเงินก้อนโต อย่างไรก็ตาม ไม่มีใครรับประกันได้ว่าคุณจะชนะที่คาสิโน และเราไม่สามารถพูดได้ว่าคุณจะชนะในทุกเกม สล็อตเว็บใหญ่ การชนะขึ้นอยู่กับการตัดสินใจของคุณและการตัดสินใจของคุณเองอาจจะได้ประสบการณ์การ

                              • コンピューティングの基礎と高速化入門

                                コンピューティングの基礎と処理の高速化入門 #1 at connpass で発表したスライドです。 https://liberal-arts-for-tech.connpass.com/event/123273/

                                  コンピューティングの基礎と高速化入門
                                • モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室

                                  随時更新していきます。 モダンなPerlの開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンなJavaの開発環境の構築方法 モダン(かもしれない)なEclipse環境(Java)の構築方法 モダンなC, C++の開発環境の構築方法 モダンなMySQLの開発環境の構築方法

                                    モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室
                                  • 【厳選30冊】理系大学生が読んでおくべき参考書たち徹底まとめ

                                    そんな中で,読者さんとこんなやりとりがありました. と,言うことで,参考書類をまとめてみました.大学レベルになると,オススメ参考書をまとめたサイトもめっちゃ少なく,参考書を探すのすら一苦労です. 幸いにも,私はロボットを専門的に学んでおり,数学,力学,電気,プログラミングなどなど多彩なことを学んでいます. 今回は,私が今まで使ったことのある参考書の中で良かったものを紹介させていただきます. ここにまとめたのは,すべて私が今まで読んだことのある参考書なので,他のサイトによくある「使ったことないけどおすすめする」的なのとは違います 私が愛読しているオーム社のマンガでわかるシリーズなどはKindle版も出ているので,通学時間とかのスキマ時間とかでサクッと読みたい人とかはKindle版を購入するのがおすすめです. 授業だけだと解法の暗記になってしまうことも少なくないですが,参考書等で体系的にわから

                                      【厳選30冊】理系大学生が読んでおくべき参考書たち徹底まとめ
                                    • コンパイラ - コンパイラの最適化についてすべてのプログラマが知っておくべきこと

                                      このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 コンパイラの最適化についてすべてのプログラマが知っておくべきこと Hadi Brais コード サンプルのダウンロード 高度なプログラミング言語には、関数、条件付きステートメント、ループなど、驚くほど生産性が上る抽象プログラミング コンストラクトが多数用意されています。ただし、高度なプログラミング言語でコードを作成する場合のデメリットの 1 つは、パフォーマンスが大幅に低下するおそれがあることです。パフォーマンスを犠牲にすることなく、わかりやすく、メンテナンスしやすいコードを作成するのが理想です。このため、コンパイラがコードを自動的に最適化してパフォーマンスの向上を図ります。最近のコンパイラが行う最適化は非常

                                        コンパイラ - コンパイラの最適化についてすべてのプログラマが知っておくべきこと
                                      • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

                                        ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

                                          C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
                                        • Vimをプログラム開発環境にしてしまおう

                                          今回から、Vimをプログラム開発環境にしてしまう方法を解説します。これができれば、Vimでプログラムを編集した後に、コンソールに戻ってコンパイルの指示を出すという面倒を避けられます。(編集部) そろそろ実用的なことを - Cプログラミング これまで7回にわたってVimの基本的な使い方を解説してきた。これまで紹介してきた操作法を身に付けておけば、かなりの速度でテキストファイルを編集できるようになっているはずだ。Vimを操作する能力は、熟練すればするほど高速になる。スキルアップに費やす対象としては悪くない選択肢だ。今回以降しばらくの間は、より具体的なシーンを想定して、操作方法や、または操作方法をより便利な次元へ引き上げるプラグインについて紹介していく。 Vimといえばやはりプログラミング言語や設定ファイルの編集エディタとして利用することが多い。今回は、C言語のソースコード編集とコンパイル、実行

                                            Vimをプログラム開発環境にしてしまおう
                                          • musicForProgramming

                                            • 音を出すプログラムを書く時に参考にしている本とか - 音の鳴るブログ

                                              Kyoto.pm町家ハッカソンの懇親会のときに id:hitode909 に音を出すプログラムを書くときに参考にしている本について聞かれた。だいたいネットの情報で済ませているのでネットで済ませていると答えたのだけど、本屋に行くとすぐに本を買ってしまう癖があって、持ってはいるので書きます。下にいくほどプログラムと関係なくなっていきます。ほとんど読んでいないです。適当に列挙してみたら思ったより多かった。 C言語ではじめる音のプログラミング http://www.amazon.co.jp/dp/4274206505 ディレイとかコーラスとかのエフェクター本。プログラムが書いてあるので分かりやすい。でもwavファイルを読み込んで加工して書き出すみたいな感じなのでリアルタイムに連続的に入力を加工したいときは工夫が必要。アルゴリズムは低速な感じ。 C/C++によるディジタル信号処理入門 http://

                                                音を出すプログラムを書く時に参考にしている本とか - 音の鳴るブログ
                                              • Closure Compiler Service

                                                // ==ClosureCompiler== // @compilation_level SIMPLE_OPTIMIZATIONS // @output_file_name default.js // ==/ClosureCompiler== // ADD YOUR CODE HERE function hello(name) { alert('Hello, ' + name); } hello('New user');

                                                • Big Sky :: C++で軽量Webサーバ書いた。

                                                  書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

                                                    Big Sky :: C++で軽量Webサーバ書いた。
                                                  • C++入門

                                                    C++入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C++入門1   プログラミングの基礎知識 C++入門2   coutを使った出力 C++入門3   cinを使った入力 C++入門4   オブジェクト指向について C++入門5   クラスを作ろう C++入門6   クラスを作ろう(補足) C++入門7   クラスの練習 C++入門8   コンストラクタの引数 C++入門9   クラス間の関係 C++入門10  乱数 C++入門11  while文とfor文 C++入門12  値を戻す関数 C++入門13  値を戻す関数の例 C++入門14  パブリックとプライベート C++入門15  継承 C++入門16  継承の練習 C++入門17  さらに継承 C++入門18  デストラクタ C++入門19  配列 C++入門20  ポインタ C++入

                                                    • 関数型プログラミングとは結局何なのか | 黒曜の吹き溜まり

                                                      この記事はドワンゴ Advent Calendar 2014の14日目です。 ちなみに前日は@erukitiさんでした。 他の方は「こんなもの作ってみた!」系の記事が多いのですが、技術系の話題であれば特に縛りはないようなので、今回はひたすら文章をつらつらと綴っていきたいと思います。 ここ数年、「マルチコア時代の主流は関数型だ」とか「Javaはもう古い! 時代は関数型!」といった記事をよく見かけるようになった気がします。 大学でOCamlを学んできた自分としては嬉しい限りなのですが、なんだか関数型という言葉がバズワード的な使われ方をしている気がして、まるで「現在起こっている全ての問題を解決する銀の矢だ!」といわんばかりの雰囲気を感じるのが気になっています。 最近うちの部署でもにわかに「関数型っぽく書こう」みたいな機運が高まってることもあるので、この機に関数型プログラミングとはなにか、どのよう

                                                      • Big Sky :: sudo の特権昇格バグはなぜ起こったのか

                                                        « Microsoft Word を Markdown に変換するコマンド「docx2md」を作った。 | Main | VimConf 2019 を終えて » Linux の sudo に root 権限を奪取できるバグが見つかった。 Linuxの「sudo」コマンドにroot権限奪取の脆弱性。ユーザーID処理のバグで制限無効化 - Engadget 日本版 この脆弱性は、sudoコマンドのユーザーIDに-1もしくは4294967295を指定すると、誤って0(ゼロ)と認識して処理してしまうというもの。0(ゼロ)はrootのユーザーIDであるため、攻撃者は完全なrootとしてコマンドを実行できることになります。 https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/ 既に Ubuntu 等にはパッチが配布され始めているらしい

                                                          Big Sky :: sudo の特権昇格バグはなぜ起こったのか
                                                        • 横着プログラミング 第3回: 履歴マニア

                                                          最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく

                                                          • コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記

                                                            僕は先日、「コンパイル時Cコンパイラ」なるプログラムをつくって、公開した。 「コンパイル時Cコンパイラ」とは、コンパイルするとC言語プログラムのコンパイルが行われるというようなC++プログラムである。 C++のコンパイル中に C言語プログラムのコンパイルを行う、 "コンパイル時Cコンパイラ"をつくりました #ELVMhttps://t.co/kKiLU3rLFX— うどん (@kw_udon_) 2016年11月18日 自分で書いておいてなんだが、「なんのこっちゃ」という感じではある。(ちゃんと記事中で説明する。) 実際、変なプログラムではあるのだが、とても嬉しいことに多くの人に面白がっていただき、予想だにしなかった大きな反響をいただいた。 Hacker Newsで1位になったり、LLVMの公式ブログで紹介されたり、果てはC++の作者であるBjarne Stroustrupにも言及されるに

                                                              コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
                                                            • プログラミング言語の相関図を表したサイト「Programming Language Influence Network」 | ライフハッカー・ジャパン

                                                              「Programming Language Influence Network」はプログラミング言語の相関図を表したサイトです。指定した言語がどの言語から影響を受けて作られたか、また他の言語にどう影響しているかの相関図が閲覧できます。 以下に使ってみた様子を載せておきます。まずProgramming Language Influence Networkへアクセスしましょう。 相関図から気になるプログラミング言語を探してもよいですし、キーワードで検索することもできます。また、オブジェクト指向のプログラミング言語のみ抽出したり、プログラミング言語のカテゴリごとに絞り込むことも可能。 興味のある言語を調べると類似した言語が見つかるので、新しい言語を学ぼうと思ったときに一度見てみるとよいかもしれません。ぜひエンジニアの方は一度覗いてみてはいかがでしょうか。 Programming Language

                                                                プログラミング言語の相関図を表したサイト「Programming Language Influence Network」 | ライフハッカー・ジャパン
                                                              • Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

                                                                Linuxカーネルのコードを読んでて、なるほど〜と思うことはよくあるけど、その中でも特に今までの考え方をぶち壊してくれたのはなんだっけと思ったところ、やっぱりリスト構造かなと言うところ。 c言語でリスト構造を作る場合、一般的な教科書方式だと↓のようにデータとnextポインタは密結合になってると思います。これの場合、struct foobarのポインタをnext要素に使っているので、他の構造体(例えば、struct hogehoge)で同じことをしようとすると、その構造体ではstruct hogehoge *nextというメンバ変数を持つ必要があります。 ヘッド要素はstruct foobarです。 struct foobar { int n; char s[64]; struct foobar *next; }; struct foobar head; Linuxカーネルの場合、データとリ

                                                                  Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
                                                                • ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering

                                                                  こんにちは。ミドルウェア開発チームのよやです。 今回は、ImageMagick についてお話します。 http://www.imagemagick.org/ ImageMagick は高機能で大変便利な画像処理ツールです。弊社でも利用させて頂いていますが、稀に実サービスにそのまま適用出来ないケースがあります。 そこで、困った時に ImageMagick 自体を改造する際のポイントと、実際の応用例をご紹介します。 ImageMagick のプログラム構造 ImageMagick のプログラムは主に以下のディレクトリに分かれます。(Magick+ ディレクトリ等幾つかは割愛します) utilities/<コマンド名>.c コマンドラインツールの起点(main 関数) wand/〜.c (コマンド共通処理とコマンド毎の処理、Wand API) magick/〜.c (機能モジュール、ユーティリテ

                                                                    ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering
                                                                  • Linuxカーネルで学ぶC言語のマクロ - 覚書

                                                                    はじめに 本記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。 #define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) 注目すべきはマクロの定義全体を囲んでいるdo { ... } while (0)という表記です。初見の人には何のことかわからないと思います。考えられる最も単純な定義から遡って、なぜこ

                                                                      Linuxカーネルで学ぶC言語のマクロ - 覚書
                                                                    • Doxygen

                                                                      ソースコード・ドキュメンテーション・ツール Doxygen は、C++、C、Java、Objective-C、Python、IDL (Corba、Microsoft 風)、Fortran、VHDL、PHP、C# 向けのドキュメンテーション・システムです。 D にもある程度対応しています。 Doxygen には、次の3つの利点があります。 文書化されたソースファイルのセットから、 オンライン・ドキュメント・ブラウザ (HTML形式) やオフラインのリファレンス・マニュアル (形式) を生成することができます。 RTF (MS-Word)、PostScript、ハイパーリンク PDF、圧縮 HTML、Unix man ページ形式の出力もサポートされています。ドキュメントは、ソースから直接抽出されます。これにより、ドキュメントとソースコードの一貫性を保つことがとても容易になります。 Doxyge

                                                                      • MySQL 5.5をわずか30秒足らずでコンパイルするためのテクニック

                                                                        べっ・・・別にソースコードなんて自分でコンパイルしないんだからねッ!!などと言わずにまず聞いていただきたい。30秒でMySQLのコンパイルが出来るというこの事実を。最近、細々とビルド時間の短縮に取り組んでいたのだが、正直ここまで爆速になるとは思わなかった。今日はビルド時間短縮のためのテクニックを紹介するので、是非皆さんも参考にして、快適ビルド生活を送って頂きたい!! 自己ベストは26.262秒マシンの状態や負荷の状況によって多少ビルドにかかる時間は前後してしまうのだが、これまでの自己ベストはなんと26.262秒。平均すると30秒ぐらい。以前は1分を切ることがなかったのだが、今ではなんとその半分でビルドが出来てしまう。これは純粋にmakeをするのにかかった時間であり、cmake(MySQL 5.5以降)やconfigure(MySQL 5.1以前)にかかる時間は除いてある。だがそれでも速い。

                                                                          MySQL 5.5をわずか30秒足らずでコンパイルするためのテクニック
                                                                        • printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita

                                                                          def check(n) s = "*"*n f = open("test.cpp","w") f.puts <<EOS #include <cstdio> int main(){ (#{s}printf)("Hello World\\n"); } EOS f.close() return system("clang++ test.cpp") end check(ARGV[0].to_i) $ ruby check.rb 10000 clang: error: unable to execute command: Illegal instruction: 4 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 10.0.1 (clang

                                                                            printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
                                                                          • Big Sky :: clib の使い勝手にマジ感動した

                                                                            C言語でアプリケーションを書くのは他の言語と比べて少し気合が必要ですよね。例えば HTTPからデータを取得する 取得したデータを json パースする 結果の一部を色付きで表示する こんな場合、C言語プログラマは 「HTTP か、じゃぁcurlかな」 「JSON か、parson かな」 「色表示か...エスケープシーケンスでもいいけどWindowsがなー...」 といった事を考え、そこから curl や parson といった資材の調達を始める事になります。途中で新しい機能を追加したくなり、それを外部ライブラリに頼る場合だとその都度資材を調達する必要があり、思考を停止しなければなりません。 この辺は ruby や perl、nodejs、golang 等の様に、ちょっとした手間だけで済ませたい物です。 またC言語の場合、ヘッダファイルはシステムの include フォルダに提供元が期待す

                                                                              Big Sky :: clib の使い勝手にマジ感動した
                                                                            • Cプログラミング診断室 - 藤原博文

                                                                              はじめに 開院準備 昔むかし/ レベル差/ 教育/ ネットワーク/ 情報集め/ 隠すことについて/ プログラムコンテスト/ ドキュメント/ 楽するように/ 手抜きと下手の違い/ 開院 第1部 外来 第1章 普通の初心者 最初から充実した(!?)プログラムが登場 関数を短くし、コメントを改善する 上手になる秘訣/ プログラムの紹介/ 何だ、このプログラムは!!/ 短くするには/ コメントについて/ 無駄な努力をやめよう/ 名前/ 気になる個所/ 修正プログラム/ 課題/ まとめ 第2章 これでもプロ 売りものであるにもかかわらず、超きたない! 構造的な欠陥の指摘〜引数、ポインタの活用 プログラムの紹介/ 「超」基本的問題点/ 関数分解/ 構造的欠陥/ 引数を使おう/ ポインタ/ その他/ まとめ(修正プログラム) 第3章 上司が問題 まさに驚異的なプログラムの見本というべき 内容の修正から、

                                                                              • C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog

                                                                                はじめに こんにちは、Go界のシャールト・コプリーです。気がついたら最後のエントリから3ヶ月も経ってました。 Goを始めると「なんでこういう書き方になってるんだろう」とか、「そもそもなんでこういう仕様になってるんだろう」とか思うことがちらほらあると思います。これは大いにGoの作者の一人であるRob Pike氏の思想に依るところがあるのが見受けられます。彼のプログラムに対する考え方が25年前に公開され「Pike Style」として知られていますが、いまもその考え方は大きくは変わっていないと思われます。せっかくなので翻訳しました。本文はC言語に関する文章ですがその本質は言語に依らないものだと思います。 Notes on Programming in C (追記)25年前なのでコンパイラの動作に依存する部分(includeに関する記述)などは古い部分もありますが、プログラミングスタイルに関する部

                                                                                  C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog
                                                                                • やる夫ブログ やる夫で学ぶプログラミングC言語入門 その1

                                                                                  2 : ◆yLAhgX0PfU :09/12/26 22:07:50 ID:P6tTRkg5 ┏           ┓ C言語 授業中 ┗           ┛ ∧∧ l: _つ/      /;:’ ∧_∧┌ _||/ (,,゚Д゚).⊃ /      / l::゚/:(`   ,,/:|  ̄||.,o ∧_∧ . l:_つ/      / l//:’と   ||  :| .o'  ̄o , ・∀・) ⊃/       /;:’ ∧_∧┌ _||/ l: _つ/        / l:’/:(`   ,,/:|  ̄||.,o ,ヽ⊃ ./        / l//:’と   ||  :| .o'                     ∧∧ ⊃ .つ / ): /       /;:’ ∧_∧┌ _||/                      .,(Д゚ ,,)_┐ / /