不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー について PostScript とか Forth とかの場合

処理系依存の部分は PostScript は Ghostscript、Forth は Gforth を前提に。

if(x=0)

PostScript
代入は def や store、比較は eq で全く違う。
Forth
代入は ! や to、比較は = で全く違う。

関数へのポインタ

PostScript
PostScript で関数に相当する executable array はファーストクラスのオブジェクトだと思う。
Forth
execution token という関数ポインタのようなものがある。

関数呼び出しの括弧

元記事にあるので略

GC

PostScript
GC 必要でしょ派
Forth
基本的に GC は無い。ライブラリを使ったり、GC のある Forth を作ったりすればある。

整数演算の結果が int の範囲を超えたときに自動的に表現力の大きい型に変更する

PostScript
加減乗算で整数演算の結果が int の範囲を超えると浮動小数点数になる。ビット演算は整数のまま値が捨てられるなどする
Forth
範囲を越えても int のまま。

ところで C のビット演算で結果が int で表現可能な範囲を越えた場合の挙動って、未定義でしたっけ、不定でしたっけ。

変数への再代入を許すかどうか

PostScript
許す
Forth
Gforth や bigFORTH だと 12 constant a などとして定数を定義できるけど、移植性があるかどうかは知らない

演算子の優先順位について

PostScript
無い
Forth
無い

比較演算子の連続について

0 < x && x <= 10 は

PostScript
それぞれ比較して and してください
Forth
それぞれ比較して and してください

単項演算子のマイナス

PostScript
-1 の - は演算子では無い。-a は a neg
Forth
-1 の - は演算子では無い。-a は a negate

ループ

PostScript
loop とか repeat とか foreach がある。goto はない。ちゃんと末尾再帰になっていれば再帰してもいい。
Forth
begin ... while ... repeat とか begin ... until とか begin ... again とか、do ... loop とか ?do ... loop とか。再帰はリターンスタックが深くなるので...。

インデントと実際の構造の不一致

PostScript
インデントは関係ない。条件分岐やループのブロックは {} で囲む。
Forth
インデントは関係ない。条件分岐やループのブロックは if ... then、do ... loop のように閉じる。

文字列オブジェクトは破壊的に変更できるか?

PostScript
はい
Forth
文字列オブジェクト? 文字列が入っているメモリのアドレスのこと?

文字列と数値を自動変換するか?

PostScript
しない
Forth
しない

1/2は何になる?

PostScript
1 2 div は 0.5、1 2 idiv は 0
Forth

真偽値

PostScript
真と偽の値はこちらが用意する。それ以外を条件式に入れたら型エラーだぞ派
Forth
0がfalse、それ以外は真だよ派

スコープ

Postscript
動的スコープだよ派
Forth
静的スコープだよ、だって動的スコープとか大変じゃん派

配列の範囲外アクセス

PostScript
例外を投げる
Forth
死ぬかも知れない

その他

n進数
PostScript
n#1234。Erlang と同じ
Forth
n base ! とすると基数を変更できる。また、gforth の場合 prefix に & をつけると base に関わらず 10進数、% をつけると 2進数、$ を付けると 16 進数。
整数の四則演算と浮動小数点数の四則演算は同じ(演算子|関数|名前)か?
PostScript
加減乗算は同じ。割り算は、結果が浮動小数点数になる div と、整数の場合は商浮動小数点ではエラーになる idiv がある。
Forth
別。整数は + - * / で、浮動小数点数は f+ f- f* f/