2013-06-15 6 views
8

言語を学ぶために出発するたびに、その言語で書かれた実行可能ファイル(コンパイルされたプログラムまたはスクリプト)が生成されます。 、世界およびstdoutに改行:'hello、world'をコンパイルするGNU smalltalk

[email protected]:~/Code$ ./hello 
hello, world 

GNU Smalltalkのと周りいじくるの程度時間後、私はこれを行う方法を発見していません。

(私はハローワールドプログラムは、これが私の標準出力の要件を満たしていない

'hello, world' printNl 

としてセッション内から発現させることができることを知っている)

私はSmalltalkのにはメインラインがありませんことを理解しています。ですから、私はそれを実現させるためにはどんな種類の定型文が必要かもしれないということに非常に興味を持っています。繰り返しますが、ファイルは必ずしもコンパイルする必要はありませんが、演習の最終結果は上記セッション抽出の結果となる小トークコードでなければなりません。

PS。 yesyesyes 私はを知っています。私は「イメージベースのプログラミング」の哲学を取り入れていないことで間違っています。私は気にしない。私はイメージとIDEとそのすべてをどのように扱うかを学ぶことに反するわけではありませんが、私は今はほとんど関心がありません。私が気にしているのは、Smalltalk言語そのものです。構文的に、哲学的にもタイポグラフィ的にも、それはむしろ美しい。私は、コマンドラインインタプリタとテキストエディタからプログラミング言語を学ぶのが快適だと感じています。 :)

答えて

12

GNUスモールトークでは、かなりの定型文はありません。 あなただけ.STファイルにあなたの一行を入れて、あなたが文をクラスを使用する代わりに、直接実行探求したい場合はgst hello.st

でそれを実行することができ、それがgstに渡されたファイルには、以下の、あまりにも簡単です - 1は、/宣言するクラスをコンパイルするために、第二次の2つの別々のファイルに上記のリストを分割することができるように

Object subclass: Hello [ 
    greet [ 
      'Hello, World' displayNl 
    ] 
]. 
greeting := Hello new. 
greeting greet. 

ファイルは、解析され、順番に実行され、コマンドラインでgstに渡さ:トリックを行います実際にそれを実行する。

プログラムを開発したら、gstに-Sフラグを付けてクラスをロードした後にイメージをスナップショットすることができます。これにより、毎回コンパイルのオーバーヘッドがなくなり、代わりにスタートアップ文を実行できます。

gstにもシバンがサポートされているので、手動でgstに渡したくない場合は、#! /usr/bin/gst -fをファイルの先頭に置くことができます。 (gstの場所をハードコーディングせずに行う方法を含む、invocationのドキュメントを参照してください)