This bibliography was originally compiled in association with my article Quantum Programming Languages: Survey and Bibliography (Mathematical Structures in Computer Science 16(4), 2006). Its original topic was quantum programming languages, but this has widened to include semantics of quantum computation and structural approaches to quantum computing. The complete bibliography as a BibTeX file is
Fable is a compiler that brings F# into the JavaScript ecosystem Functional programming and more Immutable by default. Powerful pattern matching. Lightweight syntax. Units of measure. Type providers. Enjoy. Type safety without the hassle Type inference provides robustness and correctness, but without the cost of additional code. Let the compiler catch bugs for you.
〒101-8430 東京都 千代田区 一ツ橋 2-1-2 国立情報学研究所 副所長 / 情報社会相関研究系 教授 佐藤一郎
Below are links to home pages of researchers working on programming language theory, design, implementation, and related areas. Disclaimer: this list is not exhaustive! Please let me know if you would like to be added to this list, or if you would like an existing entry modified or deleted. Back to the language research page Related Pages The SEL-HPC list of home pages of functional language resea
2017-08-28 :: Yoneda, coYoneda, category theory, compilers, closure conversion, math By: Max New The continuation-passing style transform (cps) and closure conversion (cc) are two techniques widely employed by compilers for functional languages, and have been studied extensively in the compiler correctness literature. Interestingly, typed versions of each can be proven to be equivalence preserving
この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の25日目の記事です。 いよいよ最終日。 まず復習を兼ねて、今までの記事を振り返りながら、C言語から半導体までCPUの中を歩く。 最後に自作コンパイラ、自作エミュレータ、自作CPUを結合し、再帰関数でフィボナッチ数を計算する。 25日間の復習 アドベントカレンダーの 初日の記事 に 「普段目にする抽象的なプログラムコードから、CPU内の電圧変動が想像できるようになりたい。」 と書いたので、今までの記事を見返しつつ、C言語から半導体までレイヤーを降りてみる。 C言語からアセンブラまで (18日目-24日目) C言語のサンプルコード int main () { int a ; a = 3 ; return 0 ; } これを1週間かけてアセンブラに変換した。 作ったコンパイラのリポジトリはこれ。
View PDF Abstract: The classical lambda calculus may be regarded both as a programming language and as a formal algebraic system for reasoning about computation. It provides a computational model equivalent to the Turing machine, and continues to be of enormous benefit in the classical theory of computation. We propose that quantum computation, like its classical counterpart, may benefit from a ve
1 Quantum Lambda Calculus Peter Selinger Dalhousie University, Canada Benoı̂t Valiron INRIA and École Polytechnique, LIX, Palaiseau, France. Abstract We discuss the design of a typed lambda calculus for quantum compu- tation. After a brief discussion of the role of higher-order functions in quantum information theory, we define the quantum lambda calculus and its operational semantics. Safety inv
CPU実験が終わって半年ですが、忘れる前にやったことを書き残しておこうと思います。 並列化ーー CPU実験 全体 4人程のチームで、自作CPU、コンパイラ、アセンブラ、シュミレータ等を作り、最終的には高級言語(mincamlというOcamlのサブセット)で書かれたプログラム(レイトレーシング)を実行速度を競います。CPU実験の詳細は検索すると結構出てくるかと思います。 レイトレプログラムの出力結果 自班の最終成果 『レイトレプログラムをマルチコアで並列実行する』ということをやりました。結論から言うとこれがかなり上手いこといって、歴代最速記録を大幅に(1/2位?)更新することができました。 具体的には記録は以下の通りです。詳しくは*1 4.666948 s(7コア、逐次実行と比べ演算順序が変わり得る) 5.193502 s(6コア、演算順序が変わらない) *実験の条件も年々良くなっているので
Programming Language Theory Learning about Programming Language Theory can be a tough journey, particularly for programming practitioners who haven’t studied it formally. This resource is here to help. Please feel free to get in touch if you have ideas for improvement. 💡 Top Tips For a quick course in Type Theory, Philip Wadler recommends: Types and Programming Languages, Proofs and Types, follow
コンパイラを作ってみたいと思っていても、アセンブリ言語はよくわからない。 パーサーみたいなコードは書いたことがあるけれど、コード生成の処理はさっぱりだ。 実行ファイルをバイナリエディターで見るとかなにそれ怖い。 そんな私なのですが、LLVMに興味を持ち始めています。 SwiftやRust、あるいはEmscriptenなど、近年注目されている言語やコンパイラ技術の中枢にはLLVMがあります。 アセンブリはよく分からなくてもLLVMを使いこなせるようになれば、マルチプラットフォームで実行ファイルを生成できる言語処理系を作るのではないか。 コンパイラ作ってみたいな、LLVMを使ってみようかなと思っている今日このごろです。 ところが、いざLLVMを勉強しようと思ってもどこから始めればいいかよく分かりませんでした。 マニュアルは巨大で読む気が起きないし、リファレンスを見てもさっぱりです。 雰囲気はわ
はじめに Rustには有名なnomというパーサーコンビネーターライブラリがあるが、せっかく高級な型システムと最適化があるのにマクロで何とかしようとするのは勿体無いと思うので、マクロに深く依存しないcombineを使ってみた。 combineの主な特徴 parsec リスペクトのパーサーコンビネーター コンビネーターはマクロではなく、 Parser traitを実装する値で表す バイトストリーム、文字(Unicodeコードポイント)ストリーム、トークンストリームの全てに対応 メモリ上の文字列だけではなく、入力ストリームからの直接のパースにも対応 まだ計測はしていないが、 Box を多用していたりはしないので、速度的に大きく遅れをとるようなことはないのではないかと思う。 以下、parsecについて知っていたほうが読みやすい構成になっているので、必要ならparsecの資料を探して読むといいかもし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く