この記事の表記規則 一般的に、`var` 、`var` 、` var` は、変数名や読者が解釈するその他の非リテラル値を表す方法です。残りはリテラルコードです。ギユメ (` «&`と`& »`)はオプションのセクションを囲みます。`&`Tab ↹ は必要な(空白の)インデントを示します。
テーブルはデフォルトではプログラミング言語名で昇順に並べられておらず、また、一部の言語は特定のテーブルにはエントリがあるが、他のテーブルにはない場合があります。
型識別子 ^a 標準定数 int shortsおよびをおよびの およびを付加できるint lengthsかを判断できます、、およびの実際のサイズは定数、、および など。shortlongshort intlong intshort intintlong intshort max intmax intlong max int^b 文字によく使われます。^c ALGOL 68、C、C++ 言語では、整数型short、int、long、 および (C99 、C++11 )long longため、実装に依存します。C および C++ ではshort、longおよびlong long型はそれぞれ少なくとも 16、32、および 64 ビット幅である必要がありますが、それ以上でも構いません。 型は、と同じ幅以下でintある必要があり、 は通常、マシンのプロセッサのワード サイズの幅です (つまり、32 ビット マシンでは 32 ビット幅であることが多く、64 ビット マシンでは 64 ビット幅になることがあります)。C99および C++11 stdint.h で正確な幅の型も定義されています。詳細については、C 構文#整数型 およびは、配列インデックスとポインタの差を処理するのに十分な大きさの符号なし整数と符号付き整数を保持するために、アドレス サイズに関連して定義されています。shortlong[u]intN_tsize_tptrdiff_tPerl 5に は明確な型はありません。整数、浮動小数点数、文字列などはすべて「スカラー」とみなされます。PHPに は2つの任意精度ライブラリがあります。BCMathライブラリはデータ型として文字列のみを使用します。GMPライブラリは内部的に「リソース」型を使用します。^f の値は[ 4 ] n組み込み関数によって提供されます。SELECTED_INT_KIND^g ALGOL 68 G の実行時オプション--precision "number"の精度をlong long int必要な「number」桁の有効数字に設定できます。標準 定数long long int width、long long max int実際の精度を決定できます。COBOL では 、必要な精度を指定することができ、指定された精度を表現できる利用可能な型が自動的に選択されます。PIC S9999たとえば、「 」は、10進数で4桁の精度を持つ符号付き変数を必要とします。バイナリフィールドとして指定すると、ほとんどのプラットフォームで16ビットの符号付き型が選択されます。Smalltalk は 、整数に対して適切な表現を自動的に選択します。通常、ネイティブワードサイズからタグビットを引いたサイズの整数 (SmallInteger ) と、任意のサイズの整数 (LargeInteger ) の 2 つの表現が存在します。算術演算は多相引数をサポートし、最も適切なコンパクトな表現で結果を返します。^j Ada の 範囲型は、実行時 (静的式の場合はコンパイル時も) に境界違反がチェックされます。実行時の境界違反が発生すると、「制約エラー」例外が発生します。範囲は 2 のべき乗に限定されません。一般的に定義される整数サブタイプは、正 () と自然 () です。(8 ビット)、(16 ビット)、(64 ビット) も一般的に定義されますが、Ada 標準では必須ではありません。パフォーマンスが整合性チェックよりも重要な場合は、実行時チェックを無効にすることができます。range 1 .. Integer ' Last range 0 .. Integer ' Last Short_Short_IntegerShort_IntegerLong_Integer^k Adaの 剰余型は、すべての演算で剰余演算を実装しているため、範囲違反は発生しません。剰余は2のべき乗に限定されません。^l Java の char のような文字によく使用されます。PHPの^mは、 そのシステムにおけるC言語の型intと同じ幅を持つ。 [c] long^n Erlang は動的型付け言語です。型識別子は通常、レコードフィールドの型、関数の引数と戻り値の型を指定するために使用されます。 [ 5 ] ^o 1単語を超える場合。 [ 6 ] ^a 標準定数 real shortsおよびをreal lengths使用しておよびshortおよびlongを付加できる、、および の実際のサイズは定数、および。定数、およびは、マシン epsilon に対して利用可能です。short reallong realshort realreallong realshort max realmax reallong max realshort small realsmall reallong small real^b 単精度宣言はしばしば尊重されない^c の値は[ 8 ] n組み込み関数によって提供されます。SELECTED_REAL_KIND^d ALGOL 68 G の実行時オプション--precision "number"の精度をlong long real必要な「number」桁の有効数字に設定できます。標準 定数long long real width、long long max real実際の精度を決定できます。^e これらのIEEE 浮動小数点型は、次のCOBOL標準で導入されます。^f double多くの実装と同じサイズです^g Swift は、 C 言語の80 ビット拡張精度 浮動小数点型long double^a の値は[ 8 ] n組み込み関数によって提供されます。SELECTED_REAL_KIND^b 任意の基本浮動小数点型でインスタンス化できる汎用型。
その他の変数型 ^a 具体的には、任意の長さの文字列で、自動的に管理されます。^b この言語では、ブール値を整数として表現します。false はゼロの値で、true はゼロ以外の値で表されます。^c すべての値は真または偽のいずれかに評価されます。 のすべてがTrueClass 真と評価され、 のすべてがFalseClass 偽と評価されます。^d この言語には独立した文字型はありません。文字は長さ 1 の文字列として表現されます。^e この言語の列挙型は、引数なしのコンストラクタのみを持つ代数型です。^f の値は[ 4 ] n 組み込み関数によって提供されます。SELECTED_INT_KIND
派生型 ^a C 言語では、ほとんどの式(sizeof and&演算子を除く)において、配列型の値は自動的に最初の引数のポインタに変換されます。構文とポインタ操作の詳細については、「C構文#配列」 ^b Crystal のすべての型はオブジェクトであるため、配列はリテラルまたは型宣言でそのように指定することにより、本質的に他の配列を含むことができます (たとえば、Array(Array(Int32 | Float64))32 ビット整数と倍精度浮動小数点数を含む 2 次元配列を指定します)。^c C ライクなtype x[]方法は Java でも機能しますが、type [] x配列宣言の推奨形式です。^d サブレンジは配列の境界を定義するために使用されます。^e JavaScript の配列は特殊な種類のオブジェクトです。^f COBOL の句真の DEPENDING ONを作成せず、常に配列の最大サイズを割り当てます。
その他の種類 ^a クラスのみがサポートされています。structC++ の^b は実際にはクラスですが、デフォルトでパブリックな可視性を持ち、 POD でもあります 。C++11 ではこれがさらに拡張され、より多くのケースでクラスが POD オブジェクトとまったく同じように動作するようになりました。^c ペアのみ^d Perlにはレコードはありませんが、Perlの型システムでは配列に異なるデータ型を含めることができるため、可変インデックスを持たない「ハッシュ」(連想配列)は実質的にレコードと同じになります。^e この言語の列挙型は、引数なしのコンストラクタのみを持つ代数型です。
変数と定数の宣言 ^a Pascalには宣言ブロックがあります。関数を 。^b 型は単なる通常のオブジェクトなので、そのまま割り当てることができます。^c Perl では、「my」キーワードは変数をブロック内にスコープします。^d 厳密には、これはname を 可変変数として宣言するものではありませんname が !とを使用して読み書きできます:= 。^e 初期値が指定されていない場合、無効な値が自動的に割り当てられます(有効な値が割り当てられる前にこの値を使用すると、実行時例外が発生します)。この動作は抑制できますが、予測可能性の観点から推奨されます。型に対して無効な値が見つからない場合(たとえば、制約のない整数型の場合)、代わりに有効かつ予測可能な値が選択されます。^f Rust では、変数letまたはlet mut変数に初期値が指定されておらず、後で代入もされない場合、「未使用変数」警告constまたはstaticまたはに値が指定されていない場合はstatic mut、エラーが発生します。大文字以外の変数には、「非大文字グローバル変数」const。変数は定義後、static mut内でのみ代入できますunsafe。^ a 単一の命令は、コロンの後に同じ行に記述できます。複数の命令は、ブロック (インデントが必要です)。条件式の構文はこの規則に従いません。^b これはパターンマッチングで 、select case に似ていますが、同じではありません。通常、代数的データ型 。^c パスカル系の言語では、セミコロンは文の一部ではありません。文と文を区切る記号であり、文の終端記号ではありません。END-IF末尾のピリオドの代わりに^dを使用できます。 ^e , Rust では、最後のマッチ アームの後、または式がブロックであるマッチ アーム (空のマッチング ブラケットで終わる可能性がある) の後では、マッチ アームの末尾のコンマ ({}。^a "stepn " はループ間隔を変更するために使用されます。 "step" を省略すると、ループ間隔は 1 になります。^b これは、全称量化子 (「すべて」または∀ )と存在量化子 (「存在する」または∃ )を実装します。^c THRUの代わりに使用できますTHROUGH。^d は の代わりに使用できます。« IS » GREATER « THAN » >^e セット式の型はトレイトを実装する必要がありますstd::iter::IntoIterator。^a Common Lisp ではwith-simple-restart、restart-caseおよびrestart-bindを使用して再起動を定義できますinvoke-restart。未処理の条件により、実装はスタックを巻き戻す前にユーザーに再起動メニューを表示する場合があります。^b 捕捉されなかった例外は、最も内側の動的に囲まれた実行に伝播されます。例外はタスク間では伝播されません(これらのタスクがランデブーで同期されている場合を除く)。
その他の制御フロー文 ^a Pascalには宣言ブロックがあります。関数を 。^b ラベルは 1 から 99999 までの数値でなければなりません。文字列による関数の呼び出しと宣言については、 リフレクティブプログラミングを 参照してください。
^a Pascal前方宣言 forward;に " "。^b Eiffel では、アプリケーションのルート クラスと機能を指定できます。^c Fortranでは、関数/サブルーチンのパラメータは引数と呼ばれます(PARAMETERは言語キーワードであるため)。CALLサブルーチンにはキーワードが必要です。^d の代わりに"foo"、同じ値を含む文字列変数を使用することもできます。 Crystalでは、キーワード returnは不要です。代わりに、関数の制御フローにおける最後のステートメントが戻り値とみなされます。Crystal 関数呼び出しでは、構文上の曖昧さがある場合 (たとえば、複数のパラメータを受け取る関数が別の関数のパラメータとして提供される場合)、または関数を宣言する場合に限り、パラメータを括弧で囲む必要があります。ここで文字列 は符号付き十進数です。
^a JavaScript は浮動小数点数のみを使用するため、いくつかの技術的な注意点があります。 [ 7 ] ^b Perlには別々の型はありません。文字列と数値は互換性があります。^c NUMVAL-Cまたは のNUMVAL-F代わりに を使用できますNUMVAL。^ は str::parse、トレイトの実装を持つ任意の型を変換するために使用できますstd::str::FromStr。 と はstr::parse、エラーがない場合、指定された型を含むFromStr::from_strを返しますturbofish () は、コンテキストから型を推論できる場合は省略できます。Result:: < _ > str::parse^a ALGOL 68 では、さらに「フォーマットされていない」転送 ルーチンとして、read、write、get、 および がput。^b を gets (x)使用すると、標準入力からフォーマットされていないテキストを読み込むことができます。gets の使用は推奨されません。fgets (x, length , stdin)^c を puts (x)押すと、fputs (x, stdout)書式なしテキストが標準出力に書き込まれます。^d は fputs(x, stderr)標準エラー出力に書式なしテキストを書き込みます^e INPUT_UNIT、OUTPUT_UNIT、ERROR_UNIT ISO_FORTRAN_ENV で定義されています。 [ 15 ] ^a Rust では、std::env::argsおよびstd::env::args_osイテレータとを返しますstd::env::Args。std::env::ArgsOsはArgs各引数をに変換しUTF-8 Stringに変換できない引数に到達するとパニックを起こします。、オペレーティングシステム ( ) からの生の文字列の非損失表現を返しますが、これは無効な UTF-8 である可能性があります。ArgsOsstd::ffi::OsString^b Visual Basic では、コマンドライン引数は分離されません。それらを分離するには、split 関数が必要です。Split(string )^c COBOL 標準にはコマンドライン引数にアクセスする手段は含まれていませんが、それらにアクセスするための一般的なコンパイラ拡張機能には、メインプログラムのパラメータの定義や usingACCEPTステートメントなどがあります。
参考文献 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ada リファレンス マニュアル – 言語と標準ライブラリ; ISO/IEC 8652:201x (E)、「リファレンス マニュアル」(PDF) 。2011年 4 月 27 日にオリジナル(PDF) からアーカイブされました。2013年 7 月 19 日 に取得 。 ↑ "Common Lisp HyperSpec (TM)" . lispworks.com . 2017年 1月30日 取得 . ↑ "www.islisp.info: 仕様" . islisp.info . 2016年1月22日の オリジナルからアーカイブ済み。 2017年 1月30日 取得 。 1 2 "Fortran Wiki の selected_int_kind" . fortranwiki.org . 2017 年 1 月 30 日 取得 . ↑ 「Erlang - 型と関数仕様」 . erlang.org . 2017年 1月30日 取得 。 ↑ 「Erlang — Advanced」 . erlang.org . 2017年 1月30日 取得 。 1 2 8.5 数値タイプ 1 2 "Fortran Wiki の selected_real_kind" . fortranwiki.org . 2017 年 1 月 30 日 取得 . ↑ 「GNU Cライブラリ:複素数」 . gnu.org . 2017年 1月30日 取得 。 ↑ "Grammar vb" . Visual Basic Language Specification . 2016-06-17. 2019-08-29 のオリジナルから アーカイブ済み 。2019-08-29 に取得 。 ↑ "for...of" . mozilla.org . 2017年 1月30日 取得 . ↑ "Try-Catch for VB" . google.com . 2016年4月16日の オリジナルからアーカイブ済み。 2017年 1月30日 取得 。 ↑ Klabnik, Steve; Nichols, Carol. "エラー処理" . The Rust Programming Language . ↑ 「素因数分解 – Rosetta Code」 . rosettacode.org . 2017年 1月30日 取得 。 ↑ 「Fortran Wiki の iso_fortran_env」 . fortranwiki.org . 2017年 1月30日 取得 。 ↑ 「システムコマンドを実行する – Rosetta Code」 . rosettacode.org . 2017年 1月30日 取得 。 ↑ "EXECUTE_COMMAND_LINE – GNU Fortran コンパイラ" . gnu.org . 2017 年 1 月 30 日 取得 .