タグ コンパイラ
人気順 5 users 10 users 100 users 500 users 1000 users「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能はダメ文字 UTF-8は神 Shift_JISやめろ \を改行とみなすかどうか C言語のコンパイラの仕様によっては\を改行と解釈しコメントが続くと解釈します。この辺りはWindowsのgcc/g++とMac/Linuxのそれ... 続きを読む
Ichigo Lispコンパイラ完全解説
Ichigo Lispコンパイラ完全解説 はじめに この記事では私がWebAssemblyで書いた Ichigo Lispという LISP 1.5実装のコンパイラのソースコードをすべて解説する。 というのも、最近とあるコンパイラの本を読んで 「説明が特定の実装に基づいてる割にそのソースが一部しか載ってない」 という不満を感じたのだが、自分で書... 続きを読む
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. 続きを読む
独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Tech Blog
はじめに 弊社Flatt Securityでは学生の学びを支援したいという想いから今回少額ではありますが高橋さんの留学を支援させていただき、そのご縁で弊社のつばめ (@lmt_swallow) | Twitterもスタッフを務めるセキュリティミニキャンプにおける素晴らしい講義の内容をテックブログに書いていただけることになりました。以下... 続きを読む
ウワサのBlawnを触ってみた - Qiita
どんな言語なの 独自の系統の文法を持つシステムプログラミング言語のようです。コンパイラのツールスタックはbison, yacc, LLVMと定番のツールを使い熟して書かれています。 Blawnの特徴は 型名の記述が一切不要 構文の可読性が高い すべての関数/クラスがC++でいうところのテンプレート関数/クラス コンパイル速度と実... 続きを読む
AWS、プログラミング言語「Rust」を支援 - AWS Open Source Blog | マイナビニュース
米AWS(Amazon Web Services)は現地時間14日、公式ブログAWS Open Source Blogにおいて、プログラミング言語「Rust」のサポートを発表した。 公式ブログでは、Rust関連のコンパイラやライブラリ、ツールなどのAmazon S3への保存、RustコンパイラのRegression test(バージョン前後のパフォーマンスのテスト)を行うツールCr... 続きを読む
コンパイラをつくってみよう / 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 専攻ではありませんでしたが (電気情報工学科→学際情報学)、選択科目によってはコンパイラやプログラミング言語を自作する実験など計算機科学... 続きを読む
お薦めのコンパイラの本とか | κeenのHappy Hacκing Blog
κeenです。たまにお薦めコンパイラの本教えてなどのやりとりをTwitterで見かけるのでまとめておきます。 私の主観が入っているので他の方の意見も参考にして下さい。 普通の入門書三書 よく挙げられるのは通称「ドラゴンブック」、「タイガーブック」、「中田先生の最適化なんちゃらの本」です。 このうちのどれかを読む... 続きを読む
RustのREPL "evcxr" を使ってみた - 簡潔なQ
概要 evcxrはRustのパーサーとコンパイラを外部から呼び出すことでREPLを実現している。セミブラックボックス的なアプローチにも関わらずなかなかの完成度で、今後が期待できる。 evcxr evcxrは最近公開されたRustのREPL (GitHub, redditのpos)である。また、Jupyterのカーネルもあるため、Jupyter Notebook上でRustを書... 続きを読む
自作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というリンカのオリジナルの作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイ... 続きを読む