って、これにつきるわな。 最初のサンプルに Pascal コンパイラを提示したのも Pascal が toy language でなく十分なアルゴリズム記述能力を持っていることを示しただけだと思うよ。 分割コンパイル(ライブラリ提供)の仕組みがないことしかり、入出力が順アクセスファイルモデルで対話処理ができないことしかり、配列長・文字列長がコンパイル時に固定されることしかり、可変引数の関数・手続きが作れず組み込みの write, writeln だけ特別扱いなことしかり、ポインタの指す先は new で新たに割り当てるし
PascalはPascal (スコア:2, 参考になる)
もともと教育用途のために作られ分割コンパイルすら想定していなくて、規格になったものも極めて簡素でコンパクトな仕様だった
本家本元Wirth大先生は次いでModula-2、Oberonを作りPascalには拘泥しなかった
良い言語だとは思うが、産業応用には取り残された感は否めない....................
#本当にTurbo Pascalは衝撃的だった(廉価なスクリーンエディタを買うとただでPascalコンパイラがついてくる~と言われたもんだ)
そもそもが過大評価だった(Re:PascalはPascal (スコア:1)
って、これにつきるわな。
最初のサンプルに Pascal コンパイラを提示したのも Pascal が toy language でなく十分なアルゴリズム記述能力を持っていることを示しただけだと思うよ。
分割コンパイル(ライブラリ提供)の仕組みがないことしかり、入出力が順アクセスファイルモデルで対話処理ができないことしかり、配列長・文字列長がコンパイル時に固定されることしかり、可変引数の関数・手続きが作れず組み込みの write, writeln だけ特別扱いなことしかり、ポインタの指す先は new で新たに割り当てるし
Re: (スコア:0)
ポインタが指してる先を解放するdisposeはあるよ。Cのfreeと同じような。ポインタに足したり引いたりは出来ないけど。
数年前まで教育用に使ってた立場からすると、余計な事が出来ないので、確かに初学者用には向いている。
さすがに時代遅れだろうとCに切り替わったけど、Cは、範囲外アクセスやらなにやら、
行儀の悪いコードでもとにかくコンパイルが通って動き初めてしまうし、
転けたときにも、なぜ転けたかを教えてくれないので危なっかしい。
どこが悪いのかをなるべくきっちり教えてくれるという機能は教育用としては得がたい。
ただ、ちゃんとした処理系を使わないと、
Re: (スコア:0)
アルゴリズム+データ構造=pascal と言われた通り、配列って初期の頃から
var
foo : array[-10..15] of hoge; (* 変数 foo は hoge型で添え字は -10 から 15 までの配列 *)
といった具合に自分で、対象を自然に扱えるよう指定できたはずですよ?
Re:そもそもが過大評価だった(Re:PascalはPascal (スコア:0)
「配列長がコンパイル時に固定される」と何も矛盾していないと思いますがいったい何に対するコメントなのでしょうか。
Re: (スコア:0)
「添え字が1から始まる」だろ。