General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
![Go でつくる汎用言語処理系 実装戦略](https://cdn-ak-scissors.b.st-hatena.com/image/square/c3216beee137eac2d653fd6d1fc33b82c1c63846/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F7732fcbad60347ddbff7a14675c2da88%2Fslide_0.jpg%3F7732323)
General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、別の言語(Object Language or Target Language: 目的言語)のプログラムとしてつくり出すプログラムです。 原始言語が FORTRAN, C, Pascal などの高水準言語で、目的言語がアセンブリ言語や機械語といったような低水準言語である時、そのような Translator をコンパイラ(Compiler) と呼びます。また、原始言語がアセンブリ言語で目的言語が機械語であ
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. 11月6日から7日(米国時間)にかけてサンフランシスコで開催された「2013 LLVM Developers' Meeting」におけるプレゼンテーションのようすがサイトにアップロードされた。Sony Computer EntertainmentのPaul T. Robinson氏がPlayStation 4の開発環境について発表しており、コンパイラインフラストラクチャとしてLLVM Clangを採用していること、採用に至るまでの検討事項や、結果としてどのような利点が得られたかを説明している。 PlayStation 4の開発にはLLVM
JavaScriptのサブセットとして静的型付け言語を定義し、事前コンパイルを可能にすることでJavaScriptの実行速度を劇的に改善しようというasm.jsの概要を、1つ前の記事で調べました。 まだasm.jsの情報は少ないのですが、その中でも分かりやすくまとまった記事がDevon Govett氏のブログBADASS JAVASCRIPTのエントリ「asm.js: A Low Level, Highly Optimizable Subset of JavaScript for Compilers」です。 Govett氏に翻訳の許可を得たので、翻訳記事として掲載します。 asm.js: A Low Level, Highly Optimizable Subset of JavaScript for Compilers MozillaのDavid Herman、Luke Wagnerそして
目次 『言語実装パターン』推薦のことば 謝辞 前書き 第I部 さあ、構文解析に取りかかろう 1章 言語アプリケーションのいろは 1.1 全体のあらまし 1.2 パターンを一巡する 1.2.1 入力文の構文解析をする 1.2.2 木を構築する 1.2.3 木の走査をする 1.2.4 入力が意味する内容を見つけ出す 1.2.5 入力文をインタプリタで実行する 1.2.6 ある言語から別の言語へと変換する 1.3 アプリケーションを解体する 1.3.1 バイトコードインタプリタ 1.3.2 Javaバグ検出器 1.3.3 Javaバグ検出器其の弐 1.3.4 Cコンパイラ 1.3.5 Cコンパイラを活用した C++実装 1.4 パターンを選んでアプリケーションを組み上げる 2章 基本的な構文解析パターン 2.1 句の構造を識別する 2.2 再帰的下向き構文解析器を構築する 2.3 文法 DSLを
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages. 開発段階にある「GCC 4.7」に「Intel Cilk Plus」のマージが開始されたことが発表された。Cilk Plusは並列プログラミングを実現するための言語拡張。マルチコアやベクタプロセッサにおいてタスクパラレルプログラミングやデータパラレルプログラミングを可能にするための機能を提供している。 Cilk Plusの特徴は学習すべき内容が少ないためすぐに習得できること、追加されるキーワードは3つだけであり扱いやすいこと、配列関連の機能が拡張されており、より少ない記述で配列関連の操作を実施できること、効率の高い並
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Googleは米国時間11月10日、オープンソースのプログラミング言語「Go」を発表した。Goは、首席ソフトエンジニアRob Pike氏やUNIXの共同開発者のKen Thompson氏らで構成されるチームにより開発された。 現在、Goプロジェクトは、プログラミング言語、コンパイラ、Goで書かれたプログラムに多くのビルトイン機能を与えるランタイムパッケージプログラムで構成されている。Pike氏によると、Goは、CおよびC++と類似しているが、最新の機能を採り入れ、ウェブブラウザ内でも使用可能にするなどの汎用性を備えているという。 Goは、ソフトウェアをマルチコアプロセッサで実行する場合に発生する問題に対処するよう開発されている。またオブ
インテル コンパイラーにはさまざまな最適化機能が備えられており、そのためインテル コンパイラーでコンパイルしたプログラムは高速に動作すると言われている。しかし、そのためだけにわざわざソースコードからコンパイルを行うのは面倒だ、という人も多いだろう。そこでSourceForge.JP Magazine編集部では、インテル コンパイラーでコンパイルされたソフトウェアをより多くの人に試してもらうため、「インテル コンパイラー 1000本ノックプロジェクト」と題し、インテル コンパイラーでコンパイルしたプログラムを公開することにした。 インテル コンパイラーには自動並列化や自動ベクトル化、プロシージャ間の最適化(Inter Procedural Optimization、IPO)など、高速に動作するバイナリコードを生成するための機構が備えられている。これによって、Visual C++やGCCなどで
As of march 2013 I have stopped maintaining cc65. See http://cc65.github.io/cc65/ for more a maintained version. The old resources (main web page, docs, wiki, mailing list and FTP server) are still available for reference as long as there is demand. I will also try to help people with questions regarding the old version. Maybe with a little less priority than before:-) index.php; last change: 03-J
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く