アカウント名:
パスワード:
C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かるC言語でデバッガに頼らなければならないデバッグ作業がPascalでは関数の実行経路のトレースバックのチェックで済むことが多いので助かる(言語仕様で規定されているのではないが、Pascal系というかWirth系の言語のコンパイラ作成のお約束になっている機能がいろいろあって助かる)Modula-2やOberonもいろいろと勉強になった
> C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かる
この部分の意味が判らないのですが、Pascal のコンパイラはコードの静的解析を行っていて、静的解析で実行時エラー(ランタイムエラー)が検出できる、ってことですか?
コードの静的解析がまともに使える様になったのは2010年以降で、1980年代のコンパイラがそこまでの静的解析を実装できていたとは俄かに信じられないのですが一体何が「助かる」だったんでしょう?
当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走してたり(今でもできるかも)returnを書き忘れても何の警告も無かったりしたので、そういうのをちゃんと弾いてくれる、程度の意味でしょう。程度は低くても静的解析と言えなくもない。
> 当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走
当時のC言語はプロトタイプ宣言がなく、一方でPascalはプロトタイプ宣言(に準ずるもの)があった、と言う事ですか?
> 程度は低くても静的解析と言えなくもない。
プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
>プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。プロトタイプ宣言に限りません、C言語だと警告もなく素通しして暴走するけれどPascalだとエラーチェックしてくれるケースがたくさんありました。「Pascalは型に厳しい」みたいな話を聞いたこと無いですか?今の水準ですと全く厳しくないどころかむしろゆるゆるの部類ですが、CLU経由で各種OOPLに、間接的に関数型言語にも続く「型で静的なチェックを行う」流れを作ったのは間違いなくPascalです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
Pascalは助かる (スコア:1)
C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かる
C言語でデバッガに頼らなければならないデバッグ作業がPascalでは関数の実行経路のトレースバックのチェックで済むことが多いので助かる(言語仕様で規定されているのではないが、Pascal系というかWirth系の言語のコンパイラ作成のお約束になっている機能がいろいろあって助かる)
Modula-2やOberonもいろいろと勉強になった
Re: (スコア:0)
> C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かる
この部分の意味が判らないのですが、
Pascal のコンパイラはコードの静的解析を行っていて、静的解析で実行時エラー(ランタイムエラー)が検出できる、ってことですか?
コードの静的解析がまともに使える様になったのは2010年以降で、1980年代のコンパイラがそこまでの静的解析を実装できていたとは俄かに信じられないのですが
一体何が「助かる」だったんでしょう?
Re: (スコア:0)
当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走してたり(今でもできるかも)returnを書き忘れても何の警告も無かったりしたので、そういうのをちゃんと弾いてくれる、程度の意味でしょう。
程度は低くても静的解析と言えなくもない。
Re: (スコア:0)
> 当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走
当時のC言語はプロトタイプ宣言がなく、一方でPascalはプロトタイプ宣言(に準ずるもの)があった、と言う事ですか?
> 程度は低くても静的解析と言えなくもない。
プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
Re:Pascalは助かる (スコア:0)
>プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
プロトタイプ宣言に限りません、C言語だと警告もなく素通しして暴走するけれどPascalだとエラーチェックしてくれるケースがたくさんありました。
「Pascalは型に厳しい」みたいな話を聞いたこと無いですか?
今の水準ですと全く厳しくないどころかむしろゆるゆるの部類ですが、CLU経由で各種OOPLに、間接的に関数型言語にも続く「型で静的なチェックを行う」流れを作ったのは間違いなくPascalです。