ファイル用構文
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)
「Smalltalk」の記事における「ファイル用構文」の解説
Smalltalk のプログラムは基本的に中間言語としてイメージファイルの中に格納され、ソースコードの編集は Smalltalk のGUI環境から行われる。このため基本的にファイルという形で Smalltalk のソースコードやプログラムを目にすることはない。しかし、ソースコードの交換目的などでどうしても Smalltalk 環境外でソースコードを管理する必要がある場合に備えファイル用の構文が存在する。ファイル用の構文は次のようになる。 Objectsubclass:#ExampleinstanceVariableNames:''classVariableNames:''poolDictionaries:''category:'example'.Example methodsFor: 'Instance Methods A' !selectorA1"処理"^ 0.!selectorA2: anArgument"処理"^ 0.!!Example methodsFor: 'Instance Methods B'!selectorB1"処理"^ 0.!selectorB2: anArgument"処理"^ 0.!!Example class methodsFor: 'Class Methods' !selector1"処理"^ 0.!selector2: anArgument"処理"^ 0.!! 本来他の言語の様なブロックが存在しないため、ブロックとして「!」が使用される。クラスの登録は「!」の一組で囲まれる。メソッドはプロトコル毎に「 クラス名 methodsFor: 'プロトコル' ! 〜 !!」というブロックで囲まれる。一つのプロトコルには複数のメソッドを定義でき、メソッド同士は一個の「!」によって区切られる。 ちなみに、クラス登録は単なるメッセージ送信であり特別な文ではないため、登録用ブロック外にも次のように単純なメッセージ送信の記述に使用する事が出来る。 Example methodsFor: 'Instance Methods A' !selector1!!'hello' displayNl.'world' displayNl.Example2 methodsFor: 'Instance Methods A' !selector!! ファイル用構文で記述されたメソッドの登録は、可読性や記述性の面からメッセージ式からかけ離れた変則的な構文が使用される。しかし、この変則的な構文を用いなければメソッドを登録できないわけではなく、次のように通常のメッセージ式でメソッドを登録する事も出来る。 Examplecompile:'selectorC: anArgument^ 0.'classified: 'Instance Methods C'. 上記では、クラスオブジェクトExampleのプロトコルInstance Methods Cに対し、メソッドselectorCを登録している。
※この「ファイル用構文」の解説は、「Smalltalk」の解説の一部です。
「ファイル用構文」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。
- ファイル用構文のページへのリンク