TL/1 のわからないところ

プログラミング言語 TL/1 は予約語と同じ名前の変数を作ることが可能だという特徴を以前に紹介した。

TL/1 の変なところ (名前解決) - 主題のない日記

具体的な効果というとはっきりしない部分がある。 たとえばこんな事例だとどう解釈すべきだろう。

VAR ARRAY
ARRAY FOO[1]
BEGIN
END

まず ARRAY という名前の単変数を宣言している。 その次の行にある配列宣言の予約語 ARRAY は変数と解釈してエラーにすべきだろうか? BEGIN より前に変数としての ARRAY が現れることはありえないのだからこの ARRAY は予約語であると解釈していいのだろうか。

後者の解釈をとって、宣言の意味で解釈を始めるのは定義本文のみ (BEGIN の直後から) とすれば曖昧さはないと思うのだが、手元の資料で特定することが出来ない。 たいした規模ではない仕様なのに、それでも不足がないように仕様をまとめるのは難しいのだなと思う。

Document ID: 59b4a74dc32d2c292bfca7c073adb764