You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
3.11 いろいろな引数渡しの方式 — 値呼び・参照呼び・名前呼び・必要呼び 参照呼出し 遅延評価と call-by-need, call-by-name 前節までの言語では,値呼び出しに基づいて関数呼び出しの際の引数渡しを実 現してきた.本節では,FORTRAN, Pascal などに見られる 参照呼出し(call-by-reference)と,遅延評価(lazy evaluation)を使った, Algol60 に見られる 名前呼出し(call-by-name),Haskell などに見 られる,必要呼出し(call-by-need)といった引数渡しの方法をみてい く. 3.11.1 参照呼出し 前節で説明したように,値呼出しの下では,関数のパラメータに対する代入は 関数呼出し側に影響をおよぼすことはない.つまり,関数呼出しの前後で,あ る変数の内容が変わることがなく,呼出し側・関
We present a resource-management model for ML-style programming languages, designed to be compatible with the OCaml philosophy and runtime model. This is a proposal to extend the OCaml language with destructors, move semantics, and resource polymorphism, to improve its safety, efficiency, interoperability, and expressiveness. It builds on the ownership-and-borrowing models of systems programming l
プログラミング言語Streemをハックしよう!Matzゼミの全貌をレポート 湊川あい 2018.03.05 367 701556280 プログラミング言語Rubyの生みの親である“Matz”こと まつもとゆきひろさん。2016年より株式会社リクルートマーケティングパートナーズ(以下RMP)の技術フェロー・技術顧問として尽力いただいております。 2018年2月14日には、スペシャル企画第3弾として、RMP社内で「Matzゼミ」が開講! 前半:プログラミング言語StreemについてMatzさんの講演 Streemはどのようにして出来たのか?今後の展開は? 後半:ワークショップ Matzが作っているプログラミング言語 Streemをハックしよう MatzさんによるStreemの講演は全世界初公開の内容です。この記事であなたも「Matzゼミ」を体験してみましょう! (取材・文章: 湊川あい) St
By Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt Communications of the ACM, March 2018, Vol. 61 No. 3, Pages 62-71 10.1145/3127323 Comments (7) In the ideal world, software developers would analyze each problem in the language of its domain and then articulate solutions in matching terms. They could thus easily commu
What is ATS? ATS is a statically typed programming language that unifies implementation with formal specification. It is equipped with a highly expressive type system rooted in the framework Applied Type System, which gives the language its name. In particular, both dependent types and linear types are available in ATS. The current implementation of ATS2 (ATS/Postiats) is written in ATS1 (ATS/Anai
The programming model in P is based on concurrently executing state machines communicating via events, with each event accompanied by a typed payload value. A memory management system based on linear typing and unique pointers provides safe memory management and data-race-free concurrent execution. In this respect, P is similar to modern systems programming languages such as Rust (opens in new tab
Published by Martin Kleppmann on 18 Sep 2009. Paul Graham has written a bunch of good essays on entrepreneurship, laying down much of the philosophy behind Y Combinator. If you’ve not read any of them yet, you should go and read them now – they contain lots of wisdom. In his 2004 short essay The Python Paradox, PG argues (perhaps controversially) that a company can hire smarter programmers if it c
Imba is a new programming language for the web that compiles to performant and readable JavaScript. Imba was born to make developing web applications fun again.
Lamdu aims to achieve its goal by: ✅ Text-like user interface: A predictable user interface with rich code completions, without the possiblity of syntax errors ✅ Responsive layout: Continuous, automatic code formatting without the user needing to deal with formatting ✅ Steady Typing: Harnessing the full power of rich static types, while making them friendly by employing type inference with a novel
Translations of this post (I can't vouch for their accuracy): Japanese Many systems boast of being ‘powerful’, and it sounds difficult to argue that this is a bad thing. Almost everyone who uses the word assumes that it is always a good thing. The thesis of this post is that in many cases we need less powerful languages and systems. Before I get going, there is very little original insight in this
多くのシステムは“パワフル”であることを売りにしています。パワフルであることを悪いことだと指摘するのは困難に思えますし、この言葉を使う人々はほとんど全て、良いことと想定して使っているようです。 この記事では、 パワフルではない 言語やシステムが必要なケースも多いということを論じたいと思います。 まずその前に、この記事を書くにあたって、私自身のオリジナルの知見はほんのわずかしかない、ということを述べておきます。ここに述べた一連の考えの背景には、Hofstadterの著作 『Gödel, Escher, Bach: An Eternal Golden Braid』 (訳注:日本語版があります。 『ゲーデル、エッシャー、バッハ – あるいは不思議の環』 )を読んだことがあります。この本を読んだことで、私自身の経験から得てきた原則について、考えがまとまりました。Philip Wadlerの投稿、
常に世界のどこかで誰かが、この世で一番のプログラミング言語は何かというトピックで投稿し、忘れ去られた言語のすばらしい一面や、新しい言語の有用性を主張しています。どうやら、その順番が私に回ってきたのかもしれません。そろそろ私も、プログラミング言語についての自分の考えを皆さんにお伝えしようと思います。 始めに少し言い訳をさせてください。30以上の言語で開発した経験があり、他の人が書いた多くのコードと悪戦苦闘をしてきた開発者でもない限り、「自分の意見には客観性がある」とはとても言えないと思います。そんなわけで、このトピックを取り上げる他の多くの人と同じように、私の意見も偏っています。多くの言語に精通した開発者がこの話題自体を不毛だと感じるのは、このせいかもしれませんね。 要約: すばらしい言語 早速、このブログ限定ということで、私が考える”すばらしい言語”を発表しましょう。 アセンブリ言語: マ
Accidentally Turing-Complete ― Andreas Zwinkau 本来なら、チューリング完全となるべきではなかったものがある。これは、そのようなうっかりチューリング完全になってしまったものの例である。 C++テンプレート 当初はチューリング完全を目指していなかったが、C++テンプレートはチューリング完全になってしまった。その証明は、この論文にある(PDF) x86 MMU x86のpage fault handlingは、単純なマシンの実装に使える。原理としては、page faultが1 wordをスタックに積み、それによりアンダーフローを起こして別のトラップを生成する。この仕組みは、「減算して0以下ならば分岐」処理を実現する。チューリングマシンを実装するには十分である。デモ動画、講演動画 マジック・ザ・ギャザリング マジック・ザ・ギャザリングはカードゲームであ
先日、Python の静的型チェッカーとして mypy を紹介しました。 mypy で静的型付け Python プログラミング - forest book 私には難しくてまとめきれないため、Guido が参照している漸進的型付け (Gradual Typing) も含め、また別の機会に、、、。 とか言っているうちに1ヶ月ほど経ってしまいました。 そうこうしているうちに PEP のドラフトも出てきたので区切りとしてまとめておきます。一通り調べたことを基にして書いていますが、私の誤解や勘違いもあるでしょうから怪しいところがあったら調べ直してみてください。もちろんツッコミも大歓迎です。 型ヒント (Type Hints) を導入するという提案 PEP 483 - The Theory of Type Hints | Python.org PEP 484 - Type Hints | Python
独自言語の実装を通してLLVMについて学ぶためのオフィシャルなチュートリアル、Kaleidoscope: Implementing a Language with LLVM、の8章全ての日本語訳をこれから掲載していく。 チュートリアルは全部で8章から成るが、章単位だとかなり長くなるので、節単位で掲載していく。 原文を読み解くために私が適当に書いた日本語のメモ書きが元になってるので、間違ってる部分も多々あるかもしれない。 また、分かりやすくするためにかなり意訳を多めにしてるので、その点でも多少正確性が犠牲になっているかもしれない。 間違いの指摘は大歓迎である。 各記事では原文へのリンクを必ず入れるようにするので、是非原文も読んで欲しい。 細かい点になるが、記事の中で中括弧の中に英文もしくは英単語が書かれてる部分がある。 これは、その直前に書かれた日本語訳に対応する原文の一部であり、訳に自信が
A language empowering everyone to build reliable and efficient software. Performance Rust is blazingly fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages. Reliability Rust’s rich type system and ownership model guarantee memory-safety and thread-safety — enabling you to elim
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く