検索この項目では、プログラミング言語について説明しています。(曖昧さ回避)」をご覧ください。■テンプレートPascal(パスカル)は、構造化された初期の代表的なプログラミング言語。影響を受けた簡素で厳密な構造化言語仕様を持つ。プログラムを生成する。現在でもパーソナルコンピュータ上の処理系が多数あり、多くの他のプログラミング言語、およびハードウェア記述言語の源泉になっている。名前は、世界で最初の機械式計算機を発明したブレーズ・パスカルの名前に因んだものである[1]。以外のコンパイラは生成される機械語が冗長で最適化が難しいと言われていたが、「言語仕様と最適化は独立した問題である」ことを証明するという目的もあったらしい。文法で解析できるという言語的な特徴によく現れている。サブルーチン[2]は使用に先立って定義しておく必要がある。ポインタ型を用いたリストを構築するための例外、交互にサブルーチンが呼び合うための例外的書法を導入した。ポインタ型に限っては、基になる型の定義の前に、その型の変数を参照するポインタ型を定義することができた。サブルーチンの定義部分だけを先に記述する方法で解決した。パーザを用いたワンパスコンパイル、すなわちソーステキストを一回走査するだけで実行ファイルを生成することが可能だった。他言語のコンパイラでは、2回以上走査を行い、最初の走査で識別子等の情報を中心に情報収集を行い、後続の走査で、それらの情報を参照しつつ実行ファイルを生成するマルチパス形式のものが多かった。文法では説明できず、マルチパスを行う必要があった。言語の仕様を活かし、かつ、作業領域を全てメモリ上に確保して、ファイルアクセスを最小限に留める特徴がある。由来の構造化構文、サブルーチンの中に、そのサブルーチン内からのみ見えるローカルな変数、そのサブルーチン内からのみ呼び出せるサブルーチン等を定義できるといった、スコープの概念と再帰的な構文構造(ブロック構造と呼ぶ)、静的スコープによる参照の局所化機能を持つ。見られた構造体を含む新しいデータ型を定義できるという特徴も持っている。レコード型とポインタを用いてリスト、木といったデータ構造を自由に構築することができる(二分木#データの二分木への格納法の例参照)。コンパイル時にできるだけ多くの不注意な誤りを発見するため強力に型付けた言語であり、またハードウェアを隠蔽する思想が徹底している。集合型、ポインタ型はそれぞれビットマップとアドレスを抽象化したものと考えられる。教育用ということもあり、最初の仕様では分割コンパイルや外部ライブラリの利用が考慮されていなかった。これは大規模なプログラムを記述したり、ハードウェアを直接操作するプログラムを記述するには不便な仕様であり、入出力の扱いなど処理系に依存しなければならない部分を言語の中に抱える結果に繋がった。ファイル型変数に特定のファイルを関連付ける標準的な方法はない。処理系のベンダがそれぞれ独自の拡張を施して、分割コンパイルやハードウェアの直接操作を可能としたが、この部分の互換性は乏しい。60ビットのマシンであった。アーキテクチャの影響を受けた箇所がある。宣言によって外部ライブラリを読み込むことができた[5]。システム設計にも優れていることを明らかにした[6]。異なるアーキテクチャの計算機への移植が進んだのと同様、多くの計算機への移植が進んだ。中間言語コンパイラを移植するためには、仮想スタックマシンであるPコードマシンのエミュレータを移植元の機械で開発し、コンパイラを移植先の機械でコンパイルするだけで良い。1970~80年代の低速な計算機では、このような中間言語方式では性能が不十分だった。して標準化し現在は1990年版である。3008-1990で、改訂版は1994である。水準0と水準1があり、後者は長さの異なる配列を引数に取るための整合配列が使える。アルゴリズムの教科書にしばしば使われた。発展)が動いていた[7]。風の分割コンパイルなどをサポートしており、言語以外にメニューを使ったユーザーインターフェースも優れていた。して販売した)などが販売されていた。動作する大変高速な1パスコンパイラ兼設計環境である。ベースマシン、V30の8080エミュレーションモードでは動作しなかった。「コンパイラはコンパイル時間が長い」という常識を打ち破った。コンパイラが付いてくる」とまで言われたほどである。版を重ねるにつれてユニット(モジュール化)やオブジェクト指向の概念を取り入れていった。