タグ コンパイラ
人気順 5 users 10 users 50 users 500 users 1000 usersコンピュータをゼロから作る『コンピュータシステムの理論と実装』の第2版が発売されました #nand2tetris | DevelopersIO
NANDゲートからCPU、OS、コンパイラまで。コンピュータの仕組みを実践的に学べる名著の改訂版が登場 プログラムがどのように実行されるのか、気になったことはありませんか? そんな好奇心旺盛なエンジニアにぴったりなのが 『コンピュータシステムの理論と実装(通称Nand2Tetris本)』 です。 https://www.amazon.co.jp/dp... 続きを読む
コンピュータシステムの理論と実装 第2版
コンピュータシステムをゼロから作って学ぶベストセラー書の改訂第2版。コンピュータを理解するための最善の方法はゼロからコンピュータを作ることです。コンピュータの構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できます。本書では、これらコンピュータの構成要素をひとつずつ組み立てます。具体的... 続きを読む
「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能はダメ文字 UTF-8は神 Shift_JISやめろ \を改行とみなすかどうか C言語のコンパイラの仕様によっては\を改行と解釈しコメントが続くと解釈します。この辺りはWindowsのgcc/g++とMac/Linuxのそれ... 続きを読む
Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に
Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に Modular社はPythonの高速なスーパーセットだと同社が位置づける新言語「Mojo」を、ローカル環境で実行可能にするコンパイラなどのツール群を公開しました。 Mojo is now available for download locally to your mac... 続きを読む
低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書
はじめに ITの世界で「低レイヤ技術」と呼ばれるものがあります。明確に定義されているわけではありませんが、アプリケーションのような直接エンドユーザに触れる部分ではなく、しかもなるべく生のコンピュータに近い部分、たとえばOSカーネルやコンパイラ、CPUを開発する技術などがあります。これらの技術に明るい人は... 続きを読む
PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発
Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2 Pythonは人気な言語だが、実行速度が遅いため、速さを求められる環境になると違う言語が採用される。この研... 続きを読む
やっぱりコンパイラが書きたい。渡米後にRuby JIT開発を趣味から仕事に変えた私のキャリア戦略 - Findy Engineer Lab - ファインディエンジニアラボ
国分崇志(@k0kubun)と申します。プログラミング言語Rubyのコミッターとして活動しています。2019年からシリコンバレーで働いており、2022年からShopifyという会社でRubyのJust-In-Time(以下、JIT)コンパイラをフルタイムで開発しています。 長い間趣味でやっていたコンパイラの開発を仕事にしたのは、現職が初めてで... 続きを読む
JavaScriptにセミコロンは入れるのか?入れないのか? - Qiita
結論 どちらでもいい セミコロン付けても付けなくても落とし穴はある ESLintを利用することで落とし穴を検知できる 私はセミコロンつけない派 自動セミコロン挿入とは 自動セミコロン挿入(automatic semicolon insertion) この仕組みのおかげでセミコロンを使わなくてもコードを書くことができ、コンパイラが行末を察し... 続きを読む
ZigはCMakeの代替となるか
既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_... 続きを読む
マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに
マイクロソフトは現在開発中のフレームワーク「.NET 7」で、ソースコードからターゲットプラットフォームに対応したネイティブバイナリをコンパイル時に生成するAOT(Ahead of Time)コンパイラを搭載する見通しだと、「Announcing .NET 7 Preview 3」で明らかにしています。 AOTコンパイラ、すなわち事前コンパイラとは... 続きを読む
コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っている... 続きを読む
Go コンパイラのコードを読んでみよう | ebiebievidence.com
目次 はじめに 対象とする読者 コンパイラとは 字句解析 (scan) 構文解析 (parse) 中間表現生成 gc とは gc のパッケージ構成 gc によるコンパイルのフロー コードリーディング コンパイルの開始とファイルの読み込み 構文解析 AST への変換 まとめ 付録 A: gc 以外の Go コンパイラ gccgo gollvm ライセンス はじめに ... 続きを読む
コンパイラのいじめかた / How to fight the compiler - Speaker Deck
All slide content and descriptions are owned by their creators. 続きを読む
ウワサのBlawnを触ってみた - Qiita
どんな言語なの 独自の系統の文法を持つシステムプログラミング言語のようです。コンパイラのツールスタックはbison, yacc, LLVMと定番のツールを使い熟して書かれています。 Blawnの特徴は 型名の記述が一切不要 構文の可読性が高い すべての関数/クラスがC++でいうところのテンプレート関数/クラス コンパイル速度と実... 続きを読む
コンパイラをつくってみよう / How to make a compiler - Speaker Deck
Builderscon 2019 の発表資料です。 ライブコーディングでゼロからコンパイラを作るというのをやりました。 コンパイラのソースコードはこちらです https://github.com/DQNEO/HowToWriteACompiler 続きを読む
Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? CDNプロバイダとして知られるFastlyは先月(4月1日)、WebAssemblyのコンパイラとランタイムで構成される「Lucet」をオープンソースで公開。同社のエッジコンピューティング環境として開発を進めて... 続きを読む
WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 WebAssemblyとは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。 マイクロソフト、Google、Mozilla、AppleなどのWebブラウザベンダがW3CのWebAssembly Communi... 続きを読む
私はこうして Google に入った (SWE・新卒編) - ふしみのブログ
最近、Googleや大学が開催しているキャリアイベントなどに参加する機会がおおかったので、そこで話したことをまとめて書いてみました。 応募時の経歴 狭義の Computer Science 専攻ではありませんでしたが (電気情報工学科→学際情報学)、選択科目によってはコンパイラやプログラミング言語を自作する実験など計算機科学... 続きを読む
自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去る... 続きを読む
Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 Facebookは、Linuxバイナリの内部配置を最適化することによりCPUのキャッシュ効率などを向上させ、実行速度を改善する「BOLT」をオープンソースで公開しました。 BOLTは「Binary optimization an... 続きを読む
Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に - Publickey
Googleが中心となってオープンソースで開発されているGo言語は、WindowsやmacOS、Linux、FreeBSD、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行... 続きを読む
「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
ソフトウェアの世界には 「悪い方が良い」原則 という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカのオリジナルの作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイ... 続きを読む
東大のCPU実験で自作コア上の自作OS上で自作シェルを動かした話 - yamaguchi.txt
2018 - 02 - 27 東大のCPU実験で自作コア上の自作OS上で自作シェルを動かした話 FPGA 作ったもの 東大の 情報科学 科では3年の秋学期にCPU実験という、自分たちでCPU、 コンパイラ 、シミュレーターを作って レイトレーシング を動かすことが単位要件の名物実験があります。僕らの班では12月初旬に単位要件を満たすCPUは出来ていたので、2/20にあった成果報告会までの間にIwa... 続きを読む
コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
コンパイラのソースには書いていないのにバイナリだけで代々伝わっていく情報というのがあって、それはコンピュータのセキュリティに大きく関わっている。ここではそれについて書いてみよう。 僕は 8cc というCコンパイラをスクラッチから書いたことがあるのだけど、8ccには文字列を読む部分で、"\"の後に"n"がきたら"\n"という文字(改行文字)を読んだことにするという 箇所 がある。これはよく考えてみれ... 続きを読む
もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note
思考実験として、全世界の人が同時に、自分の持っているコンパイラやインタープリタなどの実行ファイルをうっかり全部消してしまったとしよう。そうするとそれ以降、ソースコードが残っていても、コンパイラ自身も含めてどのようなプログラムもコンパイルできなくなってしまう。この状況から人類は元のコンピュータ文明を復旧することができるのだろうか? 僕は結論としては、かなり簡単に復旧できると思う。ここではその手順につ... 続きを読む