はてブログ

はてなブックマーク新着エントリーの過去ログサイトです。



タグ コンパイラ

新着順 人気順 5 users 10 users 50 users 100 users 500 users 1000 users
 
(1 - 25 / 177件)

「悪い方が良い」原則と僕の体験談|Rui Ueyama|note

2018/04/06 このエントリーをはてなブックマークに追加 999 users Instapaper Pocket Tweet Facebook Share Evernote Clip Rui Ueyama Note 原則 リンカ lld

ソフトウェアの世界には 「悪い方が良い」原則 という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカのオリジナルの作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイ... 続きを読む

MacPortsでステキなUNIXツールをインストール - はこべブログ♨

2012/06/10 このエントリーをはてなブックマークに追加 912 users Instapaper Pocket Tweet Facebook Share Evernote Clip MacPorts インストールディスク UNIXツール

インストールの準備MacPortsはソフトウェアをコンパイルしてインストールするので、コンパイラやらがいろいろと必要。そこで、Xcode Toolsをインストールする。これは、Mac本体に付属のOSインストールディスクか、http://connect.apple.com/から手に入るけど、インストールディスクからがおすすめ。最近のマシンだとOSのインストールディスクのXcode Tools/Xco... 続きを読む

文字列アルゴリズムの学びかた - Hatena Developer Blog

2016/12/22 このエントリーをはてなブックマークに追加 844 users Instapaper Pocket Tweet Facebook Share Evernote Clip Hatena Developer Blog パーザ 本稿

2016 - 12 - 22 文字列アルゴリズムの学びかた こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 本稿では、「文字列アルゴリズム... 続きを読む

Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研 (imos laboratory)

2017/01/27 このエントリーをはてなブックマークに追加 743 users Instapaper Pocket Tweet Facebook Share Evernote Clip rust Mozilla imos laboratory

Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することにより メモリ安全 および データ競合安全 をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスが... 続きを読む

スタンフォードのコンピュータサイエンスの授業の感想|Rui Ueyama|note

2017/04/06 このエントリーをはてなブックマークに追加 564 users Instapaper Pocket Tweet Facebook Share Evernote Clip スタンフォード Rui Ueyama Note レジスタ 授業

いまのところ25単位分(マスター修了に必要な単位数の約半分)の授業を取ったので感想を時系列でちょっとまとめたい。昔のやつは記憶が曖昧になっているけど。 CS 243 プログラムの解析と最適化 要するにコンパイラの最適化の授業。前半はデータフロー解析とかでかなり実用的な感じがしたが、後半は行列計算の命令の依存関係を抽出してベクトル最適化とか、ItaniumみたいにレジスタのたくさんあるCPUでループ... 続きを読む

Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey

2018/06/20 このエントリーをはてなブックマークに追加 563 users Instapaper Pocket Tweet Facebook Share Evernote Clip bolt Facebook Publickey CPU 言語

Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 Facebookは、Linuxバイナリの内部配置を最適化することによりCPUのキャッシュ効率などを向上させ、実行速度を改善する「BOLT」をオープンソースで公開しました。 BOLTは「Binary optimization an... 続きを読む

東大のCPU実験で自作コア上の自作OS上で自作シェルを動かした話 - yamaguchi.txt

2018/02/27 このエントリーをはてなブックマークに追加 553 users Instapaper Pocket Tweet Facebook Share Evernote Clip yamaguchi.txt 東大 CPU実験 IWA FPGA

2018 - 02 - 27 東大のCPU実験で自作コア上の自作OS上で自作シェルを動かした話 FPGA 作ったもの 東大の 情報科学 科では3年の秋学期にCPU実験という、自分たちでCPU、 コンパイラ 、シミュレーターを作って レイトレーシング を動かすことが単位要件の名物実験があります。僕らの班では12月初旬に単位要件を満たすCPUは出来ていたので、2/20にあった成果報告会までの間にIwa... 続きを読む

Cコンパイラをスクラッチから開発してみた(日記) - Qiita

2014/09/06 このエントリーをはてなブックマークに追加 537 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita ヒストリ スクラッチ Cコンパイラ 日付

以前に8ccというCコンパイラをゼロからひとりで開発していたときのログです。40日でセルフコンパイルできるところまで到達しています。日付はすべて2012年です。コードとヒストリはすべてGitHubで見れます。 3月4日 というわけでコンパイラを作っているわけだけど、1000行くらい書いたらそれなりに動き始めてきた。こんなのも動くし: int a = 1; a + 2; // => 3 こういうのも... 続きを読む

漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

2010/07/27 このエントリーをはてなブックマークに追加 516 users Instapaper Pocket Tweet Facebook Share Evernote Clip MySQL オトコ perl Java Python

2010-07-27 モダンなMySQLの開発環境の構築方法 遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「... 続きを読む

コンパイラの構造を解説

2006/03/22 このエントリーをはてなブックマークに追加 502 users Instapaper Pocket Tweet Facebook Share Evernote Clip Translator 構造 解説 プログラミング言語 翻訳

はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 1. Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、... 続きを読む

ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita

2017/11/22 このエントリーをはてなブックマークに追加 490 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita サブセット エミュレータ FPGA CPU

情報系と無縁だった者が、コンピュータのしくみを知るために格闘した作業ログ 半導体回路の基礎から出発し、FPGAでCPUを作る x86の命令セットを学び、エミュレータを作る C言語のサブセットを策定し、コンパイラを作る 誰かの役に立てばと思い、公開します 続きを読む

大学院生のためのLLVM | インフラ・ミドルウェア | POSTD

2015/08/27 このエントリーをはてなブックマークに追加 487 users Instapaper Pocket Tweet Facebook Share Evernote Clip LLVM POSTD 功績 リサーチ インフラ・ミドルウェア

この記事は、LLVMコンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。この記事は、LLVMコンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。... 続きを読む

もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note

2017/12/03 このエントリーをはてなブックマークに追加 471 users Instapaper Pocket Tweet Facebook Share Evernote Clip インタープリタ Rui Ueyama Note 人類 結論

思考実験として、全世界の人が同時に、自分の持っているコンパイラやインタープリタなどの実行ファイルをうっかり全部消してしまったとしよう。そうするとそれ以降、ソースコードが残っていても、コンパイラ自身も含めてどのようなプログラムもコンパイルできなくなってしまう。この状況から人類は元のコンピュータ文明を復旧することができるのだろうか? 僕は結論としては、かなり簡単に復旧できると思う。ここではその手順につ... 続きを読む

programming - 作りたいものを作るには結局大量のコードを書かないといけないことについて - Qiita

2014/11/11 このエントリーをはてなブックマークに追加 457 users Instapaper Pocket Tweet Facebook Share Evernote Clip Programming Qiita ruiu 編集リクエスト

作りたいものを作るには結局大量のコードを書かないといけないことについてprogramming(23)ruiuが2014/11/11に投稿(2014/11/11に編集)編集履歴(5)編集リクエストを作成する 作りたいものを作るには結局大量のコードを書かないといけないことについて。 コンパイラなどを作り始めると本来自分が作りたかったわけではないものについてもせっせとコードを書かないといけなくなる。とく... 続きを読む

「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

2023/12/05 このエントリーをはてなブックマークに追加 440 users Instapaper Pocket Tweet Facebook Share Evernote Clip GCC Qiita 改行 Linux UTF-8

TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能はダメ文字 UTF-8は神 Shift_JISやめろ \を改行とみなすかどうか C言語のコンパイラの仕様によっては\を改行と解釈しコメントが続くと解釈します。この辺りはWindowsのgcc/g++とMac/Linuxのそれ... 続きを読む

Javaでコンパイラの基礎を理解する

2007/03/05 このエントリーをはてなブックマークに追加 439 users Instapaper Pocket Tweet Facebook Share Evernote Clip Java プログラミング 中身 基礎 普段

そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です 続きを読む

コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

2021/12/27 このエントリーをはてなブックマークに追加 426 users Instapaper Pocket Tweet Facebook Share Evernote Clip リンカ lld mold kernel 作者

Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っている... 続きを読む

Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編(1/6):CodeZine

2009/11/06 このエントリーをはてなブックマークに追加 419 users Instapaper Pocket Tweet Facebook Share Evernote Clip CodeZine Scala generics javac

本稿は『月刊DBマガジン 2009/09 月号』の記事「Javaの限界を超えて実用化を目指す、新開発言語「Scala」の メリットとは」を転載し、一部修正したものです。 Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミ... 続きを読む

ウワサのBlawnを触ってみた - Qiita

2019/10/23 このエントリーをはてなブックマークに追加 393 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita Blawn うわさ Bison LLVM

どんな言語なの 独自の系統の文法を持つシステムプログラミング言語のようです。コンパイラのツールスタックはbison, yacc, LLVMと定番のツールを使い熟して書かれています。 Blawnの特徴は 型名の記述が一切不要 構文の可読性が高い すべての関数/クラスがC++でいうところのテンプレート関数/クラス コンパイル速度と実... 続きを読む

コンパイラ - コンパイラの最適化についてすべてのプログラマが知っておくべきこと

2015/03/03 このエントリーをはてなブックマークに追加 365 users Instapaper Pocket Tweet Facebook Share Evernote Clip プログラマ 最適化 すべて

高度なプログラミング言語には、関数、条件付きステートメント、ループなど、驚くほど生産性が上る抽象プログラミング コンストラクトが多数用意されています。ただし、高度なプログラミング言語でコードを作成する場合のデメリットの 1 つは、パフォーマンスが大幅に低下するおそれがあることです。パフォーマンスを犠牲にすることなく、わかりやすく、メンテナンスしやすいコードを作成するのが理想です。このため、コンパイ... 続きを読む

Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に - Publickey

2018/04/15 このエントリーをはてなブックマークに追加 364 users Instapaper Pocket Tweet Facebook Share Evernote Clip Publickey WebAssembly wasm CPU

Googleが中心となってオープンソースで開発されているGo言語は、WindowsやmacOS、Linux、FreeBSD、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行... 続きを読む

RubyMotion - naoyaのはてなダイアリー

2012/08/31 このエントリーをはてなブックマークに追加 361 users Instapaper Pocket Tweet Facebook Share Evernote Clip naoya RubyMotion ツールチェイン プロジェ

ちょっと前に RubyMotion を触ってみて、これは面白いなと思いブログにでも書こうかと思った矢先にドラゴンクエスト10が発売してしまい、あれよあれよといううちに一ヶ月経ってしまいました。それはさておき「るびも」こと RubyMotion ─ いや、るびもと呼んでいるのは自分だけですけど。Ruby で iOS のネイティブアプリが書けるというツールチェイン。コンパイラ、テストスイート、プロジェ... 続きを読む

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

2016/12/03 このエントリーをはてなブックマークに追加 357 users Instapaper Pocket Tweet Facebook Share Evernote Clip コンパイル プログラム 日記 C++

2016 - 12 - 03 コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 僕は先日、「 コンパイル 時C コンパイラ 」なるプログラムをつくって、公開した。 「 コンパイル 時C コンパイラ 」とは、 コンパイル すると C言語 プログラムの コンパイル が行われるというような C++ プログラムである。 C++ の コンパイル 中に C言語 プログラムの コンパイル を... 続きを読む

自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報

2018/08/20 このエントリーをはてなブックマークに追加 326 users Instapaper Pocket Tweet Facebook Share Evernote Clip Ken Thompson 日報 UNIX 痕跡 通称

UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去る... 続きを読む

きつねさんでもわかるLLVM - 達人出版会

2013/02/08 このエントリーをはてなブックマークに追加 325 users Instapaper Pocket Tweet Facebook Share Evernote Clip LLVM コンパイラ基盤 レビュア 途上 本書

β版 あらゆる可能性を秘めたコンパイラ基盤として注目されているLLVM。本書はコンパイラを実際に作りながらLLVMのフロントエンドからバックエンドまでを幅広く解説した世界初(!?)のLLVM解説本です。 β版について 本書のステータスは現在β版であり、現在、著者やレビュアの方々により修正が行われている段階です。 いま購入されてお読みいただけるのはその途上の原稿を元にしたものです。 最終的に正式公開... 続きを読む

 
(1 - 25 / 177件)