Want to create a programming language, but don't feel like going through one of those expensive and boring 1000-page books ? Well, you're not alone ... The best system to create your first programming language.
Want to create a programming language, but don't feel like going through one of those expensive and boring 1000-page books ? Well, you're not alone ... The best system to create your first programming language.
読み終わった。たった100Pにプログラム言語を作るための基礎(字句解析、構文解析、ランタイム、インタプリタ、仮想マシン、ネイティブコンパイルまで!)が一通り学べ、さらに本書で作った実際に動くプログラミング言語がついてくる。 $39.99 とちょっと高いがプログラム言語を作る勉強代だと考えれば最も安くそして早く(ドラゴンブックは1090P)学べるのではないだろうか。洋書なのが難点だが半分くらいはソースコードなので苦労しながらなんとかなりました。(日本語訳出てほしいなぁ) 書籍内で作る言語は2種類で Awesome Rubyの構文にPythonのインデントブロックを混ぜ合わせたようなオブジェクト型 Mio Ioを参考にしたメッセージ型 言語自体はどちらもRubyで書かれているが紹介される概念は特に言語の制約を受けないものが多い。 よかったところ yaccやbison, JVM系の構文解析ツール
アメリカ大統領選挙候補者であるドナルド・トランプ氏をイメージした Pythonベースのプログラミング言語「TrumpScript」が公開されています。 特徴が滅茶苦茶だったのでご紹介します。 GitHub - samshadwell/TrumpScript: Make Python great again どうやら米ライス大学の24時間ハッカソンで作られたようです。 ハッカソンでの優勝は逃したものの、日々issueにバグ報告が上がっており、 よりトランプ氏らしくなるように改善がされているようです。 特徴 浮動小数点型は使えず整数のみ。アメリカは中途半端なことはしない。 数値は100万より大きくなくてはいけない。それより小さい数字は取るに足らない。 importは使えない。全てのコードはアメリカ製でなければならない。 True,Falseの代わりにfact,lieを使う。 変数名に使えるのは
はじめに 家帰ったら『主要じゃない200くらいのプログラミング言語の雑な紹介』書いてやるから待ってろ — NANAKASE Kotoko (@make_now_just) 2016年7月1日 このツイートがことの発端でした。元ネタは、 主要なプログラミング言語 5種類を徹底解説! - Programming share 主要なプログラミング言語8種をざっくり解説 - shi3zの長文日記 あたりです。上の方の記事の冒頭に、 現在プログラミング言語は、200種類以上存在していると言われています。(実際に利用されているプログラミング言語の数はその10分の1くらいです。) とあったので200言語解説してみようというわけです。 200言語の解説を書くということは仮に1言語1分で書いたとしても200分、つまり3時間と20分の時間がかかるわけで、まぁそれは無駄に時間のかかる作業になります。そうなると必
_ Rubyが今のPythonの地位にいない理由 歴史のことなんぞなんも知らんけど、「技術的には今のPythonの地位はRubyでもよかったのに、そうならなかった」のが何故か、その理由を書いてみよう。僕はRubyの歴史なんて知らないし、以下の文章は全部、まるで見てきたかのように書いてますが、適当に書いたくせに何故か断言口調になっている怪文書の類いです。 https://twitter.com/mametter/status/741950239662170112 まめさんの書いた理由リストはどれも関係ない。いやカスってるけど。難しいというのも関係ない。 僕がRubyを知ったころ…最初に書いた通りRubyの歴史なんて知らないので、別に早くもないわけだけど…Rubyというのは全く使われていない言語だった。どっかの好き者がPerlの替わりに単純な処理に使って、「ウフ、美しくかけた、グフッ」とかつぶ
前編では、Reactive Extensions (Rx) の機能を関数型プログラミングの視点で読み解いた。続いて後編では、前編で紹介した Rx が関数型的な機能を提供している背景、つまり Observable と他の一般的なコンテナの関係に対してスポットライトを当ててみたい。 あらかじめ断っておくと、本編の話題は、実際に Rx を使う上で理解している必要は(あまり)ない。とりあえず、 Observable は、List や Future と同じくモナドの一種である 以下の表に出てくるコンテナは、隣同士で互いによく似た(あるいは正反対の)性質を持っている: 単数 複数 同期 (pull) T/Try[T] Iterable[T] 非同期 (push) Future[T] Observable[T] …という話だけ記憶に留めてもらえば、ここで回れ右してもオーケー。とはいえ、興味のある人はこの
仕事以外でもプログラミングを楽しみたい人は「Project Euler」に挑戦してみてはいかがでしょうか。Project Eulerは数学の問題を好きなプログラミング言語で解き正解数を競うサイトです。答えがあっていればよく、アルゴリズムなどは問われません。現在200近い数の問題があり、2万人以上のユーザ中、全問正解しているのはわずか20人あまりです。 初めのほうは比較的難易度が低く、たとえば最初の問題は次の通りです。 10未満の自然数で3または5の倍数は3、5、6、9です。これらの倍数の和は23になります。1,000未満で3または5の倍数の和を求めなさい。 だんだんと問題が進むにつれ、難易度の高いものやマシンに長い時間かけて計算をさせるものが出てきます。 正解すると該当問題のフォーラムを閲覧でき、そこにはいろんなユーザが回答したソースコードを見ることができます。 英語が苦手な方は、問題文を
2012年2月10日紙版発売 千葉滋 著 A5判/384ページ 定価2,838円(本体2,580円+税10%) ISBN 978-4-7741-4974-5 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com この本の概要 コンピュータ言語の学習をする際,非常に効果的なのは,自分でOSやコンパイラ,プログラミング言語を作ることです。本書は,JavaScriptやPHP,Python,Rubyのようなスクリプト言語(Lightweight Language:軽量言語)を,自分の手で作り上げる方法を解説します。しかも14日間,すなわち14ステップで高度な概念を自然に理解できるようになります(正確には,自習時間もいれて20日です!ご注意!)。普通の本ならば,後回しにしてしまう重要な概念もわかりやすく解説,サンプルコードを読みながら,自分専用のプログラミング
はじめに「僕たちは今……」 人間の思考に、ことば――すなわち言語は欠かせないものです。考えごとをするときに、ことばを使っていない人はいないでしょう。 さて、僕達は今、コンピュータを身近に感じる世界にいます。 コンピュータというのは、ハードウェアとソフトウェアに大きく分けることができますが、ソフトウェアはさまざまなプログラミング言語を用いて書かれたプログラムで構成されています。 プログラムの重要さは、コンピュータのハードウェアを変更しなくても、中のプログラムを変えることによってコンピュータの用途を「計算」「文書作成」「ゲーム」「勤怠管理」「ショッピング」と変えることができることからもわかります。つまり、皆さんが「コンピュータって便利だね」と、言うときに指すコンピュータとは、プログラミング言語で書かれたプログラムのことなのです。 そのプログラミングの始まりは、チャールズ・バベッジが作成
前置き: 特定の言語ではなく、関数型言語一般に関する説明です。 ここに書くのが良いのかわかりませんが、それを考える時間ももったいないのでとりあえず書きます。必要が生じたら移転します。 皆様のご要望や自分の気分(?)により随時加筆修正します。 「それは違うんじゃない?」というご指摘はもちろん、初心者の方の素朴な疑問・質問や、「ここがよくわからない」「こういうことも書いてほしい」みたいなコメントも歓迎します。すぐに対応できない場合もあると思いますがすみません。Twitterのesumii宛でも構いませんが、コメントのほうが他の方も見つけやすくて良いと思います。当然ながら(他者に対しても)誹謗中傷等はご遠慮ください。 いただいたコメントはほぼ本文に反映していますので、本文を読むために、必ずしもコメントを読む必要はありません。もちろん、興味と余裕(?)があればコメントも読んでいただければ非常に有用
まつもとさん自身によるStreemについての解説は、今後日経Linuxで順次掲載されるようです。まつもとさんがStreemについて解説する内容は、おそらく、プログラミング言語設計に関する高レベルなものとなるのではないでしょうか。 本記事はそれとは無関係に、2015年1月に公開されているStreemについての低レベルな解説、つまり現時点のStreemのソースファイル(の一部)の読み解き方を示します。具体的には、GitHubのStreemリポジトリにある「lex.l」と「parse.y」という2つのソースファイルについて解説します。 Streemのソースファイルは、https://github.com/matz/streemからダウンロードできます。画面右下にある[Download ZIP]ボタンをクリックしてください。 lex.lとparse.y ダウンロードしたStreemソースファイルの
テック系巨大ベンダーが掲げる最新の看板とは、プログラム言語だ。それはまた、効果的な囲い込み戦略とも言える。 スコット・ローゼンバーグが書いているように「戦争では、勝者が歴史の本を書く。テクノロジーの世界では、勝ち組企業はプログラミング言語を書く」のだ。従って今日、マイクロソフトにC#があったように、Hack(フェイスブック)、Go(グーグル)そしてObjective-C/Swift(アップル)が存在する。 これらの言語は、それぞれ異なるアプリケーションを書くのに適した、単なる異なる言語と言うわけではない。いわば巨大ベンダーにとって、デベロッパーを壁で囲まれた庭に閉じ込めておく戦略となっているのだ。これは我々にとって危惧すべきことなのか? オープン、でもプロプライエタリ?そうかもしれないし、そうでないかもしれない。所詮言語による囲い込みは、ある程度デベロッパーを拘束することはできるけれど、じ
久しぶりの更新 GitHubの <URL:http://github.com/matz/streem> を公開したら驚くべき反響の大きさなので、本人もびっくりしている。 ので、ここでちょっとまとめておく。 もともとは日経Linuxの自作言語入門の連載のネタ 時系列的には2015年1月号で言語仕様を決めた(原稿提出は11月中旬) 2015年2月号で実装について解説(原稿提出は12月初旬) 2月号原稿には「github.com/matz/streemを参照のこと」と書いた 提出したその日に1月号発売 原稿提出後、原稿で解説した部分を実装し(300行程度)、githubにアップロード だれかが見つける hackernews, redditなどでバズる github issues, pull requestなどいっぱいくる 私が実装する前に Go で実装しちゃう人が出る (mattn/streee
世界的にも有名なRubyの作者Matzことまつもとゆきひろ氏の新しいプログラミング言語「Streem」のリポジトリがGitHubで公開され、注目を浴びています。 説明によるとStreemとは「ストリームベースの並行スクリプト言語」。シェルと似たプログラミングモデルを基礎として、RubyやErlangやその他関数型プログラミング言語に感化されているということ。 例えばシンプルなcatプログラムは、以下のように記述されます。 STDIN | STDOUT さらにFizzBuzz問題はこのように。 seq(100) | {|x| if x % 15 == 0 { "FizzBuzz" } else if x % 3 == 0 { "Fizz" } else if x % 5 == 0 { "Buzz" } else { x } } | STDOUT シンプルですね。パイプでつなげるところがシェル
Photo by Durán こんにちは。今回は谷口がお送りします。 先日このブログで、Smalrubyを使って実際に弊社社員にビジュアルプログラミング学習をしてもらい、FizzBuzzのシステムを作ってもらったというお話をしました。 初心者が簡単にRubyプログラミングを覚えられる!Smalrubyの使い方 - paiza開発日誌 そこで今回は、その次のステップとして日本語でプログラミングができる言語『なでしこ』を使って、プログラミングの学習をしてもらいましたので、その過程をご紹介していきます。 なでしこは、単語も文法も日本語に沿った形でコードが書けるので、これからプログラミングを学ぶ初心者の方には最適の教材になると思います。 ちなみにやってもらったのは、普段は事務を担当しており、プログラミング経験はビジュアルプログラミングのみ、条件文やループの概念に関しては、SmalrubyでFizz
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く