LoginSignup
3
2

More than 1 year has passed since last update.

付録 (標準 Pascal 範囲内での Delphi 入門)

Last updated at Posted at 2019-03-11

付録

定義済み識別子 (標準名)

定数

定数
False 0
MaxInt (環境依存)
True 1

※ 特殊な定数 nil もあります。

Delphi にはこの他にも様々な定数が定義されています。

変数

変数 説明
Input テキストファイル 標準入力
Output テキストファイル 標準出力

Delphi にはこの他にも様々な変数が定義されています。

説明
Boolean 論理型
Char 文字型
Integer 整数型
Real 実数型
Text ファイル型

Delphi にはこの他にも様々な型が定義されています。

標準手続きと標準関数

標準 Pascal の標準手続きと標準関数は、それぞれ次のように呼ばれる事があります。

  • 宣言済み手続き / 宣言済み関数
  • 定義済み手続き / 定義済み関数

つまりは最初から使えるルーチンの事です。Delphi だと 組み込みルーチン が標準手続き/標準関数に相当します。

標準手続き (Required procedures)

ファイル処理手続き (File handling procedures)
手続き 説明 Turbo UCSD
Get() ファイルを次の要素まで進め、
その値をバッファ変数 F^ に格納する。
要素が存在しなければ Eof()True になり
F^ は不定となる。
Page() ページ送りを行う。
Put() ファイル F にバッファ変数 F^ の値を追加する。
実行後は Eof()True になり F^ は不定となる。
Read() ファイルからデータを読み込む。
Readln() ファイルからテキストを 1 行読み込む。
Reset() ファイル F を先頭に位置付け、
F が空でなければ F の最初の要素が
F^ に代入され、Eof()False を返す。
Rewrite() ファイル F を生成する。
F は空になり、Eof()True を返す。
Write() ファイルにデータを書き込む。
Writeln() ファイルにテキストを 1 行書き出す。
動的割付け手続き (Dynamic allocation procedures)
手続き 説明 Turbo UCSD
Dispose() 動的変数用に割り当てられたメモリを解放する。
New() 新しい動的変数を作成し、パラメータに渡された
ポインタ変数を動的変数のポインタに設定する。
オリジナル Pascal では Alloc()。
変換手続き (Transfer procedures)
手続き 説明 Turbo UCSD
Pack() パックされていない配列型の内容を
パックされている配列型へコピーする。
Unpack() パックされている配列型の内容を
パックされていない配列型へコピーする。

標準関数 (Required functions)

算術関数 (Arithmetic functions)
関数 パラメータ 説明 Turbo UCSD
Abs() 単純型の変数または
単純値
値の絶対値を返す
ArcTan() 実数型の変数または
実数値
値の逆正接を返す
Cos() 実数型の変数または実数値 値の余弦を返す
Exp() 実数型の変数または
実数値
値の指数関数を返す
Ln() 実数型の変数または
実数値
値の自然対数を返す
Sin() 実数型の変数または
実数値
値の正弦を返す
Sqr() 単純型の変数または
単純値
値の 2 乗を返す
Sqrt() 実数型の変数または
実数値
値の平方根を返す
変換関数 (Transfer functions)
関数 パラメータ 説明 Turbo UCSD
Round() 実数型の変数または
実数値
値を丸めた整数を返す
Trunc() 実数型の変数または
実数値
値の整数部を返す
順序関数 (Ordinal functions)
関数 パラメータ 説明 Turbo UCSD
Chr() 順序型の変数または
順序数
順序数をもつ文字を返す。
Ord() 文字型の変数または
文字定数
現在の文字集合での
順序数を返す。
オリジナル Pascal では Int()
Pred() 整数型の変数 値の一つ前の値を返す
Succ() 整数型の変数 値の一つ次の値を返す
論理関数 (Boolean functions)
関数 パラメータ 説明 Turbo UCSD
Eof() ファイル型変数 ファイルの終わり
Eoln() ファイル型変数 行の終わり
Odd() 順序型の変数または
順序値
値が奇数のときに
True を返す

Delphi にはこの他にも色々な組み込みルーチンが用意されています。

記号

特殊シンボル (特殊記号)

標準 Pascal:

# ' ( ) * + , - . / : ; < = > [ ] ↑ { }

Delphi:

# $ & ' ( ) * + , - . / : ; < = > @ [ ] ^ { }

CDC 科学用 64 文字集合

0 1 2 3 4 5 6 7 8 9
0 : A B C D E F G H I
10 J K L M N O P Q R S
20 T U V W X Y Z 0 1 2
30 3 4 5 6 7 8 9 + - *
40 / ( ) $ = , . [
50 ] % 1 2 < >
60 ;

文字集合変換ルール (1973)

CDC (Pascal) { } [ ]
ASCII OR AND NOT <> <= >= /* */ @ [ ]
EBCDIC & ¬= <= >= /* */ @ (. .)

代替表現 (ダイグラフ )

標準 Pascal:
※ 1983 年よりも前の Pascal では注釈 ({ } -> (* *)) 以外の代替表現は明確に定義されていません。

文字
(基準表現)
ダイグラフ
(代替表現)
↑ または ^ @
{ (*
} *)
[ (.
] .)

『J&W』第 3 版以降では ↑ の代わりに @ または ^ という記述がありますが、ISO / ANSI Pascal では

文字 ↑ は ISO 646の国別表現によっては文字 ^ と同等とみなされている。
この規格では見やすさを考慮して文字 ↑ を用いる。

JIS ではさらに

文字 ↑ は JIS X 0201 の文字 ^ に対応する。

とあるため、上記の表が正確だと思います。

Delphi:

Delphi での @ (または ^) の代替表現ではなく演算子です。

予約語 (綴り記号)

標準 Pascal:

and       end       nil       set    
array     file      not       then
begin     for       of        to
case      function  or        type
const     goto      packed    until
div       if        procedure var
do        in        program   while  
downto    label     record    with      
else      mod       repeat    

Delphi:

and                 except              label               set    
array               exports             library             shl
as                  file                mod                 shr
asm                 finalization        nil                 string
begin               finally             not                 then
case                for                 object              threadvar
class               function            of                  to
const               goto                or                  try
constructor         if                  packed              type
destructor          implementation      procedure           unit
dispinterface       in                  program             until
div                 inherited           property            uses
do                  initialization      raise               var
downto              inline              record              while  
else                interface           repeat              with        
end                 is                  resourcestring      xor

指令

指令

標準 Pascal:

forward

Delphi:

absolute            final               override            safecal
abstract            forward             package             sealed
assembler           helper              pascal              static
automated           implements          platform            stdcall
cdecl               index               private             stored
contains            inline              protected           strict
default             library             public              unsafe
delayed             local               published           varargs
deprecated          message             read                virtual
dispid              name                readonly            winapi
dynamic             near                reference           write
experimental        nodefault           register            writeonly
export              operator            reintroduce         
external            out                 requires
far                 overload            resident

ヒント指令

標準 Pascal:

(なし)

Delphi:

platform           deprecated           library

構文オプション (コンパイラ指令)

次の構文オプションは [プロジェクト | プロジェクトオプション] でも変更できます。
image.png
※ * が付いているスイッチがデフォルトです。

VAR 文字列の厳密処理 {$V}

説明
{$V+}* 厳密な型チェックが行われ,仮パラメータと
実パラメータが同一の文字列型であることを
要求する。
{$V-} 短い文字列型の変数はすべて実パラメータとして
使用可能。

完全な論理評価 {$B}

説明
{$B+} 完全論理評価を行う
{$B-}* 短絡論理評価 (ショートサーキット論理評価)を
行う

拡張構文 {$X}

説明
{$X+}* 関数の結果を別の関数に渡したり演算や代入に
使用することなく破棄できる。
関数内で Result 変数が使える。
ヌルで終わる文字列と Delphi 文字列の
代入互換性がある。
{$X-} 関数の結果は別の関数に渡したり演算や代入に
使用しなくてはならない。
関数内で Result 変数は使えない。
ヌルで終わる文字列と Delphi 文字列の
代入互換性がない。

型付き @ 演算子 {$T}

説明
{$T+} @ 演算子の結果の型は型付きポインタ
{$T-}* @ 演算子の結果の型は型なしポインタ

オープンパラメータ {$P}

説明
{$P+}* string はオープン文字列パラメータ
{$P-} string は変数パラメータ

長い文字列を使う {$H}

説明
{$H+} string を短い文字列 (ShortString)
{$H-}* string は長い文字列 (AnsiString)

型付き定数への代入 {$J}

説明
{$J+} 型付き定数へ書き込み可能
{$J-}* 型付き定数へ書き込み不可能

資料とチュートリアル

Pascal 関連で参考になるサイト

スイス連邦工科大学チューリッヒ校 (ETH) にある資料

書籍とドキュメント

【DELPHI STARTER チュートリアルシリーズ】 シーズン2

~ 無料の開発環境 Delphi Starter Edition で Object Pascal言語を優しく学ぶ ~

Delphi Starter Edition でメモ帳クローンを作る

後継言語や ISO 規格との比較

Pascal
(1970)
Modula-2
(1979)
Oberon
(1988)/
Oberon-07
(2007)
Oberon-2
(1991)
モジュール化
ISO 10206
(1991)
オブジェクト指向 ×
ドラフト

ISO 10514-3
(1988)

ISO/IEC 10206:1991 = 拡張 Pascal (Extended Pascal)
ISO/IEC 10514-3:1988 = オブジェクト指向 Modula-2 (Object Oriented Modula-2)

検証環境一覧

  • 標準 Pascal: PASCAL-P5
  • UCSD Pascal: DOSBOX-X / UCSD p-System IV.2.2
  • Pascal/MT+ (CP/M): RunCPM (Win32) / Pascal/MT+ ver5.6.1
  • Apple II Pascal: AppleWin / Apple Pascal System 1.1
  • Turbo Pascal (CP/M): RunCPM (Win32) / Turbo Pascal 3.01A
  • Turbo Pascal (MS-DOS): DOSBOX-X / Turbo Pascal 1.0 / 3.0 / 5.5
  • MPW Pascal: Basilisk II | SheepShaver / MPW Pascal 3.6d7
  • Think Pascal: Basilisk II | SheepShaver / Think Pascal 4.5d4
  • Delphi: Delphi 10.4 Sydney
  • GNU Pascal: ideone.com
  • Free Pascal: ideone.com
  • Modula-2: XDS-x86
  • Oberon-2: XDS-x86

See also:

ギャラリー

・Pascal-P5 (標準 Pascal)
image.png

・Pure PASCAL (標準 Pascal)
image.png

・Apple II Pascal System (UCSD II.1)
image.png

・UCSD p-System IV.2.2 (Pecan Software Systems, Inc.)
image.png

・Pascal/MT+ ver5.6.1
image.png

・Apple Macintosh Programmer's Workshop (WPM) 3.6d7
image.png

・Symantec THINK Pascal 4.5d4
image.png

・Blue Label Software (BLS) Pascal 1.2
image.png

・Borland Turbo Pascal 1.0 (MS-DOS)
Compiler Version: 1.0
image.png

・Borland Turbo Pascal 3.01A (CP/M)
Compiler Version: 3.0
image.png

・Borland Turbo Pascal 5.5 (MS-DOS)
Compiler Version: 5.5
image.png

・Borland Delphi 1
Compiler Version: 8.0
image.png

・Borland Delphi 7
Compiler Version: 15.0
image.png

・Borland Kylix 3 for Delphi (Linux)
image.png

・CodeGear Delphi 2007
Compiler Version: 18.5
image.png

・Embarcadero Delphi 10.4 Sydney
Compiler Version: 34.0
image.png

See also:

索引

[ ← 12. テキストファイルの入出力 ] [ ↑ 目次へ ] [用語集 →]

  1. ETH では { が使われていました。

  2. ETH では } が使われていました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2