タグ

プログラム言語に関するninjinのブックマーク (13)

  • プログラミング言語Ruby ― ありえるえりあ

    方針 Rubyをまったく知らない前提で始めます JavaJavaScript、elispのようなメジャーな言語と対比しながら説明します なるべく手を動かして目に見える形で説明を進めます 次回Ruby on Railsの勉強会をするので、それにつながることに重点を置きます 逆に言うと、RoRであまり使わない知識は流します。例えば、ファイル操作周りやスレッド周りなど 開発環境(2) .emacs.elに書くべき記述 ; ruby (autoload 'ruby-mode "ruby-mode") (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-al

  • Wizard Bible 26

    [-]=======================================================================[-] Wizard Bible vol.26 (2006,5,7) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0

    ninjin
    ninjin 2007/10/10
    第2章:スクリプト言語を作ってみよう ← 簡易BASIC
  • B3 OS/Programming(東京工業大学の授業:コンパイラのつくりかた)

    シラバス コースは、プログラミングの基について、ひととおりの技術を学び終えた受講者を対象とする。コースの目的は、実際のソフトウェアを開発する際に、具体的にどのようにプログラムを設計し、またどのように OS の機能を利用していけばよいか、感覚をつかんでもらうことである。このため、コースは講義中心ではなく、いくつかのソフトウェアの作成演習をとおして、そのソフトウェアのプログラムはなぜそのように設計されているのか等を考えてもらう。 1. 簡単な C コンパイラ 言語仕様を簡略化したCコンパイラを作成し、言語処理系の基構成を学ぶ。また関数呼び出しや配列参照など、C言語の各基機能が実際にどのような機械語に変換されていくのかを学ぶ。 実際に作成する処理系は2つで、まずはじめに字句解析の練習として、ごく簡単なLispインタプリタを作る。 その後、構文解析、コード生成の演習のため、C言語風の手続

  • 演算子定義できるパーサとインタプリタ - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記

    ほぼ、C言語の演算子が定義できてて+αの演算子がついてる言語です。 最初構文木を作って、それをインタプリタで動くいう。 なにが、新しいのかというと、プログラムは数値や識別子以外は演算子でつながってるってこと。 演算子でつながってるだけなので、構文木もそんな風になってます。 あとは、説明めんどくさいので。いいや。 とにかく、S式に代わると言い張っていいんじゃないのかなぁと思えるくらいになってきたんじゃないかと思います。 いつも、そう思ってるのだけど、これ以上シンプルで分かりやすくってのは難しいと思います。 ってところまで来たと思いますけど、どうでしょうか。 このインタプリタ部分をもっと拡張すると俺的に理想に近い言語になりそうです。 1+2*3;4 が ["xox",["xox",1,"+",["xox",2,"*",3]],";",4] となる〜っていう言語です。xoxは左結合の2項演算子の

    演算子定義できるパーサとインタプリタ - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
  • L2Lisp in Ruby:CodeZine

    はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li

  • まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro

    結城浩 (ゆうき ひろし) JavaPerlなどの書籍でおなじみの著者。 最新刊は「数学ガール」。 このイラストは結城浩さん書き下ろしのもの。 http://www.hyuki.com/ 日経ソフトウエア2007年8月号,特集のテーマはプログラミング言語のRubyです。「Ruby大作戦」と題した特集の中で,Ruby作者のまつもとゆきひろ氏と,JavaPerlの書籍や誌連載の執筆,Web上での活動で著名な結城浩氏の対談を設けました。以下は,日経ソフトウエア2007年8月号に掲載した対談の全内容です。ぜひお楽しみください。なお,この対談では,お二人のファンで日経ソフトウエア特集「Ruby大作戦」のPart5にも寄稿いただいた松岡浩平氏にも同席していただきました。この対談でRubyに興味を持たれた方は,ぜひ日経ソフトウエア2007年8月号をお読みください。 はじめてのRuby ――結城さ

    まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro
  • 「Ruby」まつもとゆきひろの「自由はこう手に入れろ」 / 叱られ隊長・黒幕Q嬢の懺悔の部屋/Tech総研

    今や世界に知られるオープンソースのプログラミング言語「Ruby」。 シンプルで利便性に富んだこの言語を開発したのが、まつもとゆきひろさんです。 「我らがクレイジー☆エンジニア主義」で、まつもとさんのプログラマとしてのルーツを取材したのですが、「Ruby」を開発したのは、サラリーマンプログラマ時代。その当時のお話がとても興味深い! 世界のプログラマから高い評価を得たことで、オープンソースソフトウェア開発で、最も成功した日人とも言われるまつもとさんが、どう会社から「自由」を得たのか? 今回はそんなこぼれ話をお伝えします。 ■■同僚が力を認めてくれれば、自由でいても大丈夫 黒幕Q :会社の業務をやりながら、「Ruby」開発をしてたんですか? まつもと:「Ruby」の開発を始めた1993年は、ちょうどバブル崩壊で      景気が冷え込んだ時期だったんです。      僕は、ソフトハウスで社内シ

  • 新言語 Xtalを作る日記

    結構何度も書き直してしまう関数のバインダ周りなんですが、また書き直してます。 これまでの記述方法でも書けるのですが、次のような新記法も追加することになりました。 XTAL_BIND(Vector){ Xdef_method(normalize); // このような、もっと簡単な記述方法の追加 Xdef_method(length); } また、引数の最後をArguments* または const ArgumentsPtr& とすることで、簡単に可変引数を受け取れるようになりました。 たとえばluaでは、数学系の関数をluaから使いたいという場合、 lua_State *L = lua_open(); luaopen_math(L); というように、luaopen_math()を呼ぶ必要があります。これはsquirrelでもそうだったはずです。 使わないライブラリでメモリを圧迫しないようにで

    新言語 Xtalを作る日記
  • Lisp:よくある誤解

    Lispについてのよくある誤解と、その中にあるちょっとした真実 はてなの質問: プログラミング言語で最強(スケーラブル)なのは、 Lispだと思われます。 http://jp.franz.com/index.html しかし、 世間ではマイナー言語のようです。 なぜでしょうか。 についた回答のいくつかには、「Lispを少しだけかじった人がしがちな誤解」が 含まれてるようなので、それをネタに少し解説してみます。 ただ、誤解が生じるのは、やっぱりそれなりの理由があって、従ってその 誤解の中にも(条件つきの)真実が含まれていることがあります。 そのへんまでをも含めて考えてみましょう。以降、引用は回答からです。 Lispはスクリプト言語? 一昔前まで、これらのスクリプト系の言語は「とてつもなく遅い」のが嫌われる最大の要因でしたが、最近のコンピューターの性能向上でようやくRuby,Python,Li

  • LispUser.net : 最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ

    LISPUSERLISPMEMOLisp is like a ball of mud - you can throw anything you want into it, and it's still Lisp. -- Anonymous Ruby 方面でみかけたネタに触発されました.Lisp はプログラマブルな言語な のでリーダーもプログラマブルです.そこでリーダーをいじって let や defun などの構文を括弧じゃなくて end にでもしてみましょうか. 100 行程度を目標にトライしました.使ったライブラリは CL-Yacc のみです. できあがったのがこちら. #@suck-lisp defun fib (n) if (< n 0) (error "oops") elif (= n 0) 0 elif (= n 1) 1 else let x <- (fib (- n 1))

  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • 1