これは、種類別にグループ化された、注目すべきプログラミング言語のリストです。
グループは重複しており、相互に排他的ではありません。言語は複数のグループにリストされる場合があります。
エージェント指向プログラミング言語
エージェント指向プログラミングにより、開発者は他のエージェントにメッセージを送信できるオブジェクトの抽象化である ソフトウェア エージェントを構築、拡張、使用できるようになります。
配列言語
配列プログラミング(ベクトルまたは多次元とも呼ばれる) 言語は、スカラーに対する操作を一般化して、ベクトル、行列、および高次元配列に透過的に適用します。
アスペクト指向プログラミング言語
アスペクト指向プログラミングを使用すると、開発者はコード自体を変更することなく、「アドバイス」と呼ばれる新しい機能をコードに追加できます。代わりに、ポイントカットを使用してアドバイスをコード ブロックに実装します。
アセンブリ言語
アセンブリ言語はマシン言語に直接対応しているため(下記参照)、マシンコード命令は人間が理解できる形式で表示されますが、個々のステートメントと個々の命令の間に 1 対 1 のマッピングがない場合があります。アセンブリ言語では、プログラマーはシンボリック アドレスを使用できます。アセンブラーは、シンボリック アドレスを絶対アドレスまたは再配置可能アドレスに変換します。ほとんどのアセンブラーは、マクロとシンボリック定数もサポートしています。
オーサリング言語
オーサリング言語は、コンピューターの専門家でない人がチュートリアル、Web サイト、その他のインタラクティブなコンピューター プログラムを簡単に作成できるように設計されたプログラミング言語です。
- ダーウィン情報タイピングアーキテクチャ(DITA)
- 投げ縄
- パイロット
- チューター
- 著者ウェア
コマンドラインインターフェース言語
コマンドライン インターフェイス(CLI) 言語は、バッチ言語またはジョブ制御言語とも呼ばれます。例:
- 4DOS ( IBM PC用シェル)
- 4OS2 ( IBM PC用シェル)
- bash ( GNU、フリーソフトウェア財団の Bourne-Again シェル)
- CLIST ( MVSコマンド リスト)
- CMS 実行
- cshとtcsh ( Bill Joy UC Berkeley著)
- VMS用DIGITAL コマンド言語CLI ( DEC、Compaq、HP )
- DOS バッチ言語( IBM PC DOS 、 Windows以前用)
- エグゼクティブ2
- Expect ( Unix自動化およびテスト ツール)
- fish ( Unixシェル)
- Hamilton C シェル(Windows 用の C シェル)
- ksh ( David Kornによって書かれた標準Unixシェル)
- Nushell (クロスプラットフォーム シェル)
- PowerShell ( .NETベースの CLI)
- rc ( Plan 9用のシェル)
- レックス
- sh (標準Unixシェル、Stephen R. Bourne作)
- TACL (タンデム高度コマンド言語)
- Windows バッチ言語( COMMAND.COMまたはCMD.EXEの入力)
- zsh ( Unixシェル)
コンパイル言語
これらは通常コンパイラによって処理される言語ですが、理論的にはどの言語でもコンパイルまたは解釈できます。
- アークTS
- アクションスクリプト
- Ada(多目的言語)
- アルゴル58
- ALGOL 60 (影響力のあるデザイン)
- 小さな機械 ALGOL
- アルゴル68
- バレリーナ→バイトコードランタイム
- BASIC(ダートマス BASIC の最初のバージョンを含む)
- BCPL
- C (広く使用されている手続き型言語)
- C++ (C から派生したマルチパラダイム言語)
- C# ( CILランタイムへ)
- セイロン( JVM バイトコードに変換)
- チル
- CLIPPER 5.3 (DOS ベース)
- Leo コンピュータ用のCLEO
- Clojure ( JVM バイトコードへ)
- コボル
- コブラ
- コモンリスプ
- 結晶
- カール
- D (C++ の再設計から)
- DASL →Java、JS、JSP、Flex.war
- Delphi ( BorlandのObject Pascal開発システム)
- DIBOL (デジタル COBOL)
- ディラン
- エッフェル(ベルトラン・マイヤーが開発)
- エルム
- エマックスリスプ
- エメラルド
- アーラン
- 要素
- Fortran ( IBMのJohn Backusによって最初にコンパイルされた)
- ガウス
- Go(Go言語)
- Gosu ( JVM バイトコードに変換)
- Groovy ( JVM バイトコードに変換)
- ハスケル
- 港
- ホーリーC
- Inform (通常はGlulxまたはZ-codeのストーリー ファイル)
- Java (通常はJVM バイトコード、マシンコード)
- 陽気な
- Julia (オンザフライでマシンコードに変換)
- Kotlin (Kotlin/Native はバイナリを生成するためにLLVM を使用します)
- ラボビュー
- 水銀
- メサ
- Nemerle(中間言語バイトコードに変換)
- ニム
- オブジェクティブC
- ポ
- Pascal (ほとんどの実装)
- PL/I (元々は IBM メインフレーム用)
- プラス
- Python (中間VM バイトコードへ)
- RPG (レポートプログラムジェネレーター)
- 赤
- さび
- Scala ( JVM バイトコードへ)
- スキーム(例:ギャンビット)
- SequenceL – 純粋に機能的、並列化、競合なし
- Simula ( ALGOL 60のオブジェクト指向スーパーセット)
- Smalltalkプラットフォームに依存しないVM バイトコード
- 迅速
- ML
- チューリング
- V (ベトナム語)
- Vala (GObject 型システム)
- Visual Basic ( CIL JIT ランタイム)
- ビジュアルフォックスプロ
- ビジュアルプロローグ
- ゾジョ
- ジグ
連結型プログラミング言語
連結型プログラミング言語は、すべての式が関数を表し、式の並置が関数合成を表す、ポイントフリーのコンピュータプログラミング言語です。[4]連結型プログラミングは、他のプログラミングスタイルで一般的な関数適用を、サブルーチンを構築するデフォルトの方法として関数合成に置き換えます。
同時使用言語
メッセージ パッシング言語は、並行性のための言語構造を提供します。Java などの主流言語における並行性の主流パラダイムは、共有メモリ並行性です。メッセージ パッシングを利用する並行言語は、一般的に、通信シーケンシャル プロセス(CSP) やπ 計算などのプロセス計算にヒントを得ています。
- Ada – 多目的言語
- Alef – スレッドとメッセージパッシングを備えた並行言語。ベル研究所の Plan 9の初期バージョンでシステムプログラミングに使用されました。
- Ateji PX – 並列処理のための Java 言語の拡張
- Ballerina – マイクロサービスの実装とオーケストレーション用に設計された言語。メッセージ ベースの並列優先同時実行モデルを提供します。
- ChucK – オーディオ用のドメイン固有のプログラミング言語、同時実行性とタイミングの正確な制御
- Cilk – 同時C
- Cω – C#を拡張した研究言語であるC Omegaは非同期通信を使用する
- Clojure – Java 仮想マシン用のLisp方言
- チャペル
- 共配列Fortran
- 並行 Pascal (Brinch-Hansen 作)
- カレー
- E – プロミスを使用し、デッドロックが発生しないことを保証する
- Eiffel ( SCOOPメカニズム、シンプルな並行オブジェクト指向計算を通じて)
- Elixir (Erlang VM 上で実行)
- エメラルド– スレッドとモニターを使用する
- Erlang – 何も共有せずに非同期メッセージパッシングを使用する
- ギャンビットスキーム– Termite ライブラリの使用
- Gleam (Erlang VM 上で実行)
- Go(Go言語)
- Haskell – 複数のマシン間での同時、分散、並列プログラミングをサポート
- ジャワ
- ジュリア
- Joule – データフロー言語、メッセージパッシングによる通信
- ラボビュー
- Limbo – Alefの親戚で、 Inferno (オペレーティングシステム)のシステムプログラミングに使用されます。
- MultiLisp –並列処理をサポートするように拡張されたSchemeバリアント
- オカムル
- オッカム–通信順次プロセス(CSP)
の影響を強く受けています
- オッカムπ – ミルナーのπ計算のアイデアを取り入れたオッカムの現代版
- オーク
- Oz – マルチパラダイム言語、共有状態とメッセージパッシングの並行性、フューチャー、および Mozart プログラミング システムクロスプラットフォームOzをサポート
- ポ
- Pict – 本質的にはミルナーのπ計算の実行可能な実装
- Python – スレッドベースの並列処理とプロセスベースの並列処理を使用する[6]
- 楽[7]
- さび
- Scala – JVM上でErlangスタイルのアクターを実装します
- SequenceL – 純粋に機能的で、自動的に並列化され、競合がない
- SR – 研究言語
- V (ベトナム語)
- 統合並列 C
- XProc – 並行処理を可能にするXML処理言語
制約プログラミング言語
制約プログラミング言語は、変数間の関係が制約として表現される宣言型プログラミング言語です。実行は、宣言されたすべての制約を満たす変数の値を見つけることによって進行します。
中括弧言語
中括弧または波括弧言語には、中括弧 (別名中括弧){}内のステートメントとしてブロックを定義する構文があります。この構文はBCPL (1966)で始まり、Cによって普及しました。多くの中括弧言語はC から派生しているか、 C の影響を強く受けています。例:
- ABCL/c+
- アレフ
- AWK
- アークTS
- B
- 紀元前
- BCPL
- バレリーナ
- C – 1970年頃にベル研究所で開発
- C++
- C#
- セイロン
- ChucK – オーディオプログラミング言語
- Cilk – マルチスレッド並列プログラミングのための並行 C
- サイクロン– より安全なCバリアント
- だ
- ダーツ
- DASL – Java ベース
- え
- ECMAスクリプト
- GLSL
- Go(Go言語)
- HLSL
- ジャワ
- リンボ
- 言語
- メル
- ネメルル(中括弧はオプション)[9]
- オブジェクティブC
- PCASTL
- パール
- PHP の
- ピコ
- パイク
- パワーシェル
- R
- 楽
- さび
- S-ラング
- Scala (中括弧はオプション)
- sed
- 堅実性[10]
- スーパーコライダー
- 迅速
- アンリアルスクリプト
- V (ベトナム語)
- ヨリック
- ヤス
データフロー言語
データフロー プログラミング言語は、プログラムを指定するためにデータ フローの (通常は視覚的な) 表現に依存します。離散イベントへの反応やデータ ストリームの処理によく使用されます。データフロー言語の例には、次のものがあります。
データ指向言語
データ指向言語は、あるセットを他のセットにマッピングするエンティティ関係テーブルとして記述された関係を検索および操作する強力な方法を提供します。[引用が必要]データ指向言語の例には次のものがあります。
- クラリオン
- クリッパー
- dBaseリレーショナル データベース アクセス言語
- グレムリン
- MUMPS (データベース作業に特化した ANSI 標準の汎用言語)
- Caché ObjectScript (MUMPS の独自のスーパーセット)
- 取得
- RDQL
- スパルク
- 構文
- Visual FoxPro – ネイティブRDBMSエンジン、オブジェクト指向、RAD
- ウェブDNA
- Wolfram Mathematica ( Wolfram 言語)
決定表言語
決定表は、どの言語でもプログラムを書く前にロジックを明確にするための補助として使用できますが、1960 年代には、次のような主要なロジックが決定表の形式で直接表現される言語がいくつか開発されました。
宣言型言語
宣言型言語は、制御フローを詳細に記述せずに計算のロジックを表現します。宣言型プログラミングは、制御フローがシリアル命令 (命令型) によって指定される命令型プログラミング言語を介した命令型プログラミングとは対照的です。(純粋な) 関数型およびロジックベースのプログラミング言語も宣言型であり、宣言型カテゴリの主要なサブカテゴリを構成します。このセクションでは、それらのサブカテゴリに含まれない追加の例を示します。
- アナリティカ
- Ant (宣言型プログラミングと命令型プログラミングを組み合わせる)
- カレー
- サイファー
- データログ
- 分散アプリケーション仕様言語(DASL) (宣言型プログラミングと命令型プログラミングを組み合わせたもの)
- ECL
- グレムリン
- 情報を伝える(宣言型プログラミングと命令型プログラミングを組み合わせる)
- 光沢
- 水銀
- メタフォント
- メタポスト
- モデリカ
- ニックス
- プロローグ
- 翻訳言語
- オズ
- RDQL
- SequenceL – 純粋に機能的で、自動的に並列化され、競合がない
- スパルク
- SQL (DQL のみ、DDL、DCL、DML は不可)
- スフレ
- Wolfram Mathematica ( Wolfram 言語)
- xベース
- XSL 変換
埋め込み可能な言語
ソースコード内
ソース埋め込み可能言語は、多くの場合 Web ページである自由形式のテキスト内に実行可能なコードの小さな断片を埋め込みます。
クライアント側の埋め込み言語は、ブラウザまたは対象クライアントの機能によって制限されます。サーバーに再接続する必要なく、Web ページにダイナミズムを提供することを目的としています。
サーバー側埋め込み言語は、ほぼすべての言語をサーバーに組み込むことができるため、はるかに柔軟性があります。サーバー側コードの断片を Web ページに埋め込む目的は、追加のマークアップを動的に生成することです。ページが提供されるとコード自体は消え、その出力に置き換えられます。
サーバー側
- PHP の
- VBスクリプト
- Tcl – NaviServerのサーバー側であり、電子産業システムの必須コンポーネントです。
- WebDNA – データベース駆動型ウェブサイト専用
上記の例は、特にこの目的に特化したものです。Erlang 、Scala、Perl、Ring、Rubyなど、他の多数の言語も適応できます (たとえば、 Apacheモジュール にするなど)。
クライアント側
- アクションスクリプト
- JavaScript (別名 ECMAScript または JScript)
- VBScript (Windows のみ)
オブジェクトコード
さまざまな動的言語やスクリプト言語を、コンパイルされた実行可能コードに埋め込むことができます。基本的に、言語のインタープリタのオブジェクト コードを実行可能ファイルにリンクする必要があります。埋め込まれた言語のソース コード フラグメントは、文字列として評価関数に渡すことができます。ソース コードがユーザーによって入力される場合、アプリケーション制御言語はこのように実装できます。インタープリタが小さい言語が推奨されます。
教育用プログラミング言語
主にプログラミングの指導と学習を目的として開発された言語。
難解な言語
難解なプログラミング言語とは、コンピュータプログラミング言語設計の限界をテストするため、概念実証のため、またはジョークとして設計されたプログラミング言語です。
拡張言語
拡張プログラミング言語は、別のプログラムに埋め込まれ、拡張スクリプトでその機能を利用するために使用される言語です。
- AutoLISP ( AutoCADに固有)
- ビーンシェル
- カル
- C/AL (C/サイド)
- 狡猾さ
- エマックスリスプ
- JavaScriptおよび一部の方言 (例: JScript)
- Lua (多くのゲームに組み込まれている)
- OpenCL (GPU と CPU の並列拡張機能を使用するための C および C++ の拡張)
- OptimJ (最適化モデルの作成とバルクデータ処理のための強力な抽象化をサポートする言語を備えた Java の拡張機能)
- パール
- パイク
- パワーシェル
- Python (Maya、Blender、その他の 3D アニメーション パッケージに組み込まれています)
- レックス
- 指輪
- ルビー(Google SketchUp)
- S-ラング
- 構文
- リス
- Tcl
- Vim スクリプト(vim)
- Visual Basic for Applications (VBA)
第四世代言語
第 4 世代プログラミング言語は、データベース システムを中心に構築された高水準言語です。一般に、商用環境で使用されます。
- 1C:エンタープライズプログラミング言語
- ABAP
- コルビジョン
- CSCの GraphTalk
- CA-DATACOM/DBで使用するCA-IDEAL (アプリケーション ライフのためのインタラクティブ開発環境)
- Easytrieveレポート ジェネレーター (現在は CA-Easytrieve Plus)
- 集中
- IBM Informix-4GL
- リンク4GL
- LiveCode (データベースに基づいていませんが、それでも 3GL よりも高い抽象レベルで動作することが目標です。)
- MAPPER ( Unisys/Sperry ) – 現在は BIS の一部
- MARK-IV ( Sterling/Informatics ) 現在は VISION:BUILDER of CA
- 自然
- プログレス4GL
- PVウェーブ
- 取得
- スカンジナビア航空
- 構文
- Ubercode (VHLL、超高水準言語)
- ユニフェイス
- ビジュアルデータフレックス
- ビジュアルフォックスプロ
- xベース
関数型言語
関数型プログラミング言語は、プログラムとサブルーチンを数学関数として定義し、それらを第一級として扱います。多くのいわゆる関数型言語は「不純」であり、命令型機能を含んでいます。多くの関数型言語は数学計算ツールに関連付けられています。関数型言語には次のものがあります。
純粋な
不純な
- オーストラリア
- ATSM
- カル
- C++ ( C++11以降)
- C#
- VB.NET
- セイロン
- カール
- だ
- ダーツ
- ECMAスクリプト
- アーラン
- フェクスル
- フリックス
- G (LabVIEW で使用)
- グルーヴィー
- ホップ
- J
- Java (バージョン 8 以降)
- ジュリア
- コトリン
- リスプ
- ML
- ネメルル
- ニム
- オパール
- OPS5
- パール
- PHP の
- PL/SQL の構文
- パイソン
- Q (等式プログラミング言語)
- Q (Kx Systems のプログラミング言語)
- R
- 楽
- レボル
- 赤
- 指輪
- ルビー
- リファル
- さび
- スカラ
- 迅速
- スプレッドシート
- V (ベトナム語)
- Tcl
- Wolfram Mathematica ( Wolfram 言語)
ハードウェア記述言語
エレクトロニクスにおいて、ハードウェア記述言語(HDL) は、電子回路、特にデジタル ロジック回路の構造、設計、動作を記述するために使用される特殊なコンピュータ言語です。業界で最も広く使用され、サポートも充実した HDL の 2 種類は、VerilogとVHDLです。ハードウェア記述言語には次のものがあります。
アナログ回路設計のためのHDL
- Verilog-AMS (アナログおよびミックスシグナル用 Verilog)
- VHDL-AMS (アナログ/ミックスシグナル拡張付き VHDL)
デジタル回路設計のための HDL
- 高度なブール式言語
- アルテラハードウェア記述言語
- ブルースペック
- 合流
- エラ
- ヘンデル-C
- インパルスC
- ローラ
- マイHDL
- パラズム
- Ruby(ハードウェア記述言語)
- システムC
- システムVerilog
- ベリログ
- VHDL (VHSIC HDL)
命令型言語
命令型プログラミング言語は、マルチパラダイムであり、他の分類に表示される場合があります。命令型パラダイムに従うプログラミング言語のリストは次のとおりです。
- エイダ
- アルゴル58
- ALGOL 60 (非常に影響力のある言語設計)
- アルゴル68
- ベーシック
- C
- C++
- C#
- セイロン
- チル
- コボル
- だ
- ダーツ
- ECMAスクリプト
- フォートラン
- ガウス
- 行く
- グルーヴィー
- アイコン
- ジャワ
- ジュリア
- ルア
- マテリアライズド
- 機械言語
- モジュラ2、モジュラ3
- おたふく風邪
- ニム
- オカムル
- オベロン
- オブジェクトパスカル
- オープンオブジェクトRexx (ooRexx)
- オープンプログラミング言語(OPL)
- OpenEdge アドバンスドビジネス言語(ABL)
- パスカル
- パール
- PHP の
- 英語
- PL/S
- パワーシェル
- 散文
- パイソン
- 楽
- レックス
- 指輪
- ルビー
- さび
- セトル
- スピークイージー
- 迅速
- Tcl
- V (ベトナム語)
- Wolfram Mathematica ( Wolfram 言語)
対話モード言語
REPLとして知られる対話モード言語は、一種のシェルとして機能します。式またはステートメントを 1 つずつ入力でき、その評価結果がすぐに表示されます。
- オーストラリア
- BASIC(一部の方言)
- クロージュア
- コモンリスプ
- Dart (Observatory または Dartium の開発者ツールを使用)
- ECMAスクリプト
- アーラン
- エリクサー(iex 付き)
- ファ#
- フリル
- ガウス
- グルーヴィー
- 狡猾さ
- Haskell (GHCi または Hugs インタープリターを使用)
- 国際言語
- J
- Java (バージョン 9 以降)
- ジュリア
- ルア
- MUMPS (ANSI 標準の汎用言語)
- メープル
- マテリアライズド
- ML
- オカムル
- パール
- PHP の
- パイク
- ポストスクリプト
- PowerShell ( .NETベースの CLI)
- プロローグ
- パイソン
- 散文
- R
- 楽
- レボル
- 赤
- レックス
- 指輪
- Ruby ( IRB付き)
- スカラ
- スキーム
- Smalltalk (Smalltalk 環境内のどこでも)
- S-Lang (S-Lang シェル、slsh を使用)
- スピークイージー
- 迅速
- Tcl (Tcl シェル、tclsh を使用)
- Unixシェル
- ビジュアルフォックスプロ
- Wolfram Mathematica ( Wolfram 言語)
通訳言語
インタプリタ言語は、インタープリタによってソース コード形式からプログラムを実行できるプログラミング言語です。理論的には、どの言語もコンパイルまたは解釈できるため、インタプリタ言語という用語は通常、コンパイルされるのではなく解釈される言語を指します。
- アリ
- オーストラリア
- AutoHotkeyスクリプト言語
- AutoItスクリプト言語
- BASIC(一部の方言)
- ビジネス向けプログラミング言語(PL/B、旧称 DATABUS、後のバージョンではオプションのコンパイルが追加)
- エッフェル( EiffelStudioのMelting Ice Technology経由)
- エマックスリスプ
- フォーカル
- ゲームメーカー言語
- グルーヴィー
- J
- jq
- Julia (デフォルトではマシンコードにオンザフライでコンパイルされますが、インタープリタも利用可能)
- JavaScript
- Lisp (1962 年以前の初期バージョンといくつかの実験バージョン。実用化された Lisp システムはコンパイラですが、その多くは必要に応じてインタープリタも提供しています)
- 言語
- ルア
- MUMPS (ANSI 標準の汎用言語)
- メープル
- マテリアライズド
- オカムル
- Pascal (初期の実装)
- PCASTL
- パール
- PHP の
- ポストスクリプト
- パワーシェル
- 散文
- パイソン
- レックス
- R
- 楽
- レボル
- 赤
- 指輪
- ルビー
- S-ラング
- シード7
- スピークイージー
- 標準 ML (SML)
- スピン
- Tcl
- お茶
- トルクスクリプト
- VBスクリプト
- Windows PowerShell – .NETベースの CLI
- いくつかのスクリプト言語 – 以下
- Wolfram Mathematica ( Wolfram 言語)
反復言語
反復言語はジェネレータを中心に構築されるか、ジェネレータを提供します。
メモリ管理タイプ別の言語
ガベージコレクション言語
ガベージ コレクション (GC) は、自動メモリ管理の一種です。ガベージ コレクターは、プログラムによって割り当てられたが使用されなくなったメモリを再利用しようとします。
手動メモリ管理を行う言語
オプションの手動メモリ管理を備えた言語
- Ada実装ではガベージ コレクションを提供する必要はありませんが、言語セマンティクスではガベージ コレクションがサポートされており、多くの実装にガベージ コレクションが含まれています。
- Blitz BASIC(BlitzMaxとも呼ばれる)は通常、参照カウント方式を採用しており[12] 、ガベージコレクターもサポートしています。また、ポインターを使用するためのオプションのユーティリティ[13]や、メモリを直接割り当てたり解放したりするためのユーティリティも付属しています[14] 。
- COBOLはCOBOL 2002の時点でポインタ[15]とヒープ割り当て[16]をサポートしており、ガベージコレクターもサポートしています。[17]
- Cythonは、ユーザーがCから、、をインポートし、Pythonコードで使用できるようにすることで、オプションの手動メモリ管理を提供します
malloc。realloc[free18 ] - Dはプログラマーに独自のガベージコレクターの完全な制御を提供し、完全に無効にする機能も備えています。[19]
- Nimは通常、設定に応じてデフォルトでガベージコレクションまたは参照カウントされますが、プログラマーはスイッチを使用して
--mm:none手動でメモリの割り当てを解除することができます。[20] - Objective-CとObjective-C++ は、手動のメモリ管理の代替として、オプションの参照カウントとガベージ コレクションをサポートしています (Apple はガベージ コレクターを非推奨にしました)。
- PostScriptでは元々、開発者は
saveandrestore演算子を使用して手動でメモリを再利用する必要がありました。PostScriptレベル2ではガベージコレクターが導入されましたが、その使用はオプションです。[21] - Rust はオプションの参照カウントをサポートしていますが、手動のメモリ管理が推奨されます。
- Scalaは通常、JVMとJavaScriptターゲットでメモリを自動的に管理します。しかし、LLVMベースのScalaネイティブコンパイラは、ポインタの使用、Cスタイルのヒープ割り当て(例
malloc、、realloc)freeおよびスタック割り当て(stackalloc)をサポートしています。[22] - Swift は
malloc通常参照カウントを使用しますが、と を使用してユーザーが手動でメモリを管理することもできます。Apple プラットフォームでは、これらの関数は C 標準ライブラリ ( 、またはfreeからインポートされます) からインポートされます。Linux では、開発者は をインポートし、Windows では をインポートする必要があります。FoundationAppKitUIKitGlibcucrt - V (Vlang) は、ユーザーの利便性のためにデフォルトで GC を使用しますが、これをオフにすることもできます (-gc none)。ユーザーはメモリを手動で自由に管理できます。自動解放 (-autofree) またはアリーナ割り当て (-prealloc) を使用することもできます。
- Valaはデフォルトで参照カウントを使用しますが、ユーザーは必要に応じて手動でメモリを管理できます。[23]
決定論的なメモリ管理を備えた言語
自動参照カウント (ARC) を備えた言語
リストベースの言語 – LISP
リストベース言語は、リストデータ構造に基づいたデータ構造化言語の一種です。
小さな言語
リトルランゲージ[26]は特殊な問題領域に役立ちます。
- awk – テキスト ファイルの操作に使用されます。
- sed – テキストを解析して変換する
- SQL – キーワードはわずかしかなく、完全なプログラミング言語に必要なすべての構成要素を備えているわけではない[a] – 多くのデータベース管理システムは、SQLをストアドプロシージャ言語として追加の構成要素で拡張している。
論理ベースの言語
ロジックベースの言語では、ソリューションを取得するための一連の手順ではなく、ソリューションに必要な一連の属性を指定します。
このプログラミング パラダイムに従う注目すべき言語には次のものがあります。
- アルフ
- アルマ-0
- カレー
- データログ
- フリル
- Flix (ファーストクラスの Datalog 制約を備えた関数型プログラミング言語)
- ヤヌス
- λProlog (多態型、モジュールプログラミング、高階プログラミングを特徴とする論理プログラミング言語)
- Oz、および Mozart プログラミング システムクロスプラットフォームOz
- Prolog (データとプログラム評価メカニズムを、ホーン論理と呼ばれる特殊な形式の数学的論理と、論理的解決と呼ばれる一般的な証明メカニズムとして定式化します)
- Mercury (Prolog ベース)
- Visual Prolog (オブジェクト指向の Prolog 拡張)
- ループ
- スフレ
機械言語
マシン言語は、コンピュータの CPU によって直接実行できます。マシン言語は、通常、8 進数または16 進数で表されるビット パターンとして定式化されます。各ビット パターンにより、CPU 内の回路はハードウェアの基本操作の 1 つを実行します。特定の電気入力 (マイクロプロセッサの CPU パッケージ ピンなど) のアクティブ化と、CPU 状態値の論理設定により、プロセッサの計算が制御されます。個々のマシン言語はプロセッサ ファミリに固有です。1 つのプロセッサ ファミリのマシン言語コードは、そのプロセッサにそれをサポートする追加のハードウェアがない限り (たとえば、DEC VAX プロセッサには PDP-11 互換モードが含まれていました)、別のファミリのプロセッサで直接実行することはできません。マシン言語は (基本的に) 常に CPU 開発者によって定義され、サード パーティによって定義されるものではありません。[b]シンボリック バージョン、つまりプロセッサのアセンブリ言語も、ほとんどの場合、開発者によって定義されます。よく使用されるマシン コード命令セットには次のものがあります。
- RISC-V
- アーム
- 12月:
- インテル8008、8080、8085
- : ...
- IBM [c]
- ミップス
- モトローラ 6800 ( 8 ビット)
- Motorola 68000 シリーズ(初期のMacintoshおよび初期のSunコンピュータで使用された CPU )
- MOS テクノロジー 65xx ( 8 ビット)
- 6502 ( VIC-20、BBC Micro、Apple II、Atari 8ビットコンピュータ用のCPU )
- 6510 (コモドール64用CPU )
- Western Design Center 65816/65802 ( Apple IIGSおよび (派生)スーパー ニンテンドー エンターテイメント システム用 CPU )
- ナショナルセミコンダクター NS320xx
- POWER、IBM RS/6000で初めて使用されました
- PowerPC – Power Macintoshや多くのゲーム コンソール(特に第 7 世代)で使用されています。
- Power ISA – PowerPCの進化形。
- サン・マイクロシステムズ(現オラクル)SPARC
- ユニバック[c]
- 30 ビットコンピュータ: 490、492、494、1230
- 36ビットコンピュータ
- MCST エルブルス 2000
マクロ言語
テキスト置換マクロ言語
マクロ言語は、あるソース コード ファイルを別のソース コード ファイルに変換します。「マクロ」は、基本的には短いテキストで、パラメータ置換によって長いテキストに展開されます (衛生的なマクロと混同しないでください)。マクロは、ソース コードのプリプロセスによく使用されます。プリプロセッサは、ファイルのインクルードなどの機能も提供できます。
#マクロ言語は、特別にラベル付けされたコード領域 ( C プリプロセッサの場合は が前に付きます) に対してのみ動作するように制限される場合があります。 あるいは、制限されない場合もありますが、その場合でも、(たとえば)文字列リテラルに埋め込まれたマクロを展開することは望ましくないことが多いため、マクロ言語では依然として基本的な構文の知識が必要です。 そうであれば、マクロ言語は複数の言語に適用できる場合が多いです。PHPなどのソース埋め込み可能な言語は完全な機能を備えているのとは対照的です。
アプリケーションマクロ言語
TclやECMAScript ( ActionScript、ECMAScript for XML、JavaScript、JScript )などのスクリプト言語がアプリケーションに埋め込まれています。これらは「マクロ言語」と呼ばれることもありますが、 m4などのテキスト置換マクロとは意味が多少異なります。
メタプログラミング言語
メタプログラミングとは、自分自身を含む他のプログラムをデータとして書き込んだり操作したりするプログラム、または実行時に行われる作業の一部をコンパイル時に行うプログラムの作成です。多くの場合、これにより、プログラマーはすべてのコードを手動で記述する場合と同じ時間で、より多くの作業を行うことができます。
マルチパラダイム言語
マルチパラダイム言語は、複数のプログラミング パラダイムをサポートします。これにより、プログラムで複数のプログラミングスタイルを使用できます。目標は、1 つのパラダイムではすべての問題を最も簡単かつ効率的に解決できないことを認め、プログラマーが仕事に最適なツールを使用できるようにすることです。
- 1C:エンタープライズ プログラミング言語(汎用、命令型、オブジェクト指向、プロトタイプベース、関数型)
- Ada (並行、分散、汎用(テンプレート メタプログラミング)、命令型、オブジェクト指向(クラスベース))
- ALF (関数型、論理型)
- Alma-0 (制約、命令、論理)
- APL (関数型、命令型、オブジェクト指向 (クラスベース))
- ベータ版(関数型、命令型、オブジェクト指向 (クラスベース))
- C++ (ジェネリック、命令型、オブジェクト指向 (クラスベース)、関数型、メタプログラミング)
- C# (汎用、命令型、オブジェクト指向 (クラスベース)、関数型、宣言型)
- セイロン(汎用、命令型、オブジェクト指向 (クラスベース)、関数型、宣言型)
- ChucK (命令型、オブジェクト指向、時間ベース、並行、オンザフライ)
- Cobra (汎用、命令型、オブジェクト指向 (クラスベース)、関数型、契約型)
- Common Lisp (関数型、命令型、オブジェクト指向 (クラスベース)、アスペクト指向(ユーザーはロジックなどのさらなるパラダイムを追加できます))
- Curl (関数型、命令型、オブジェクト指向 (クラスベース)、メタプログラミング)
- カリー(並行、関数、ロジック)
- D (ジェネリック、命令型、関数型、オブジェクト指向 (クラスベース)、メタプログラミング)
- Dart (汎用、命令型、関数型、オブジェクト指向 (クラスベース))
- Delphi Object Pascal (汎用、命令型、オブジェクト指向 (クラスベース)、メタプログラミング)
- Dylan (関数型、オブジェクト指向 (クラスベース))
- ECMAScript (関数型、命令型、オブジェクト指向 (プロトタイプベース))
- Eiffel (命令型、オブジェクト指向 (クラスベース)、汎用、関数型 (エージェント)、並行型 (SCOOP))
- F# (関数型、汎用型、オブジェクト指向 (クラスベース)、言語指向)
- Fantom (関数型、オブジェクト指向 (クラスベース))
- Go、Golang(命令型、手続き型)、
- Groovy (関数型、オブジェクト指向 (クラスベース)、命令型、手続き型)
- 港
- ホップ
- J (関数型、命令型、オブジェクト指向 (クラスベース))
- Julia (命令型、多重ディスパッチ(「オブジェクト指向」)、関数型、メタプログラミング)
- LabVIEW (ビジュアル、データフロー、コンカレント、モジュール式、関数型、オブジェクト指向、スクリプト)
- Lua (関数型、命令型、オブジェクト指向 (プロトタイプベース))
- Mercury(機能的、論理的、オブジェクト指向)
- メタオブジェクト プロトコル(オブジェクト指向 (クラスベース、プロトタイプベース))
- Nemerle (関数型、オブジェクト指向 (クラスベース)、命令型、メタプログラミング)
- Objective-C (命令型、オブジェクト指向 (クラスベース)、リフレクション)
- OCaml (関数型、命令型、オブジェクト指向 (クラスベース)、モジュール型)
- Oz (関数型 (評価:積極的、遅延的)、論理型、制約型、命令型、オブジェクト指向 (クラスベース)、並行型、分散型)、および Mozart プログラミング システムクロスプラットフォームOz
- Object Pascal (命令型、オブジェクト指向 (クラスベース))
- Perl (命令型、関数型 (純粋関数型にはできない)、オブジェクト指向、クラス指向、アスペクト指向 (モジュール経由))
- PHP (命令型、オブジェクト指向、関数型 (純粋に関数型にはできない))
- Pike (インタープリタ型、汎用、高水準、クロスプラットフォーム、動的プログラミング言語)
- Prograph (データフロー、オブジェクト指向 (クラスベース)、ビジュアル)
- Python (関数型、コンパイル型、解釈型、オブジェクト指向 (クラスベース)、命令型、メタプログラミング、拡張、非純粋、対話型モード、反復型、リフレクション型、スクリプト)
- R (配列、解釈型、不純、対話型モード、リストベース、オブジェクト指向プロトタイプベース、スクリプト)
- Racket (関数型、命令型、オブジェクト指向 (クラスベース)、ユーザーによる拡張が可能)
- Raku (並行、連結、関数型、メタプログラミング汎用、命令型、リフレクションオブジェクト指向、パイプライン、リアクティブ、ライブラリ制約経由、分散)
- Rebol (関数型、命令型、オブジェクト指向 (プロトタイプベース)、メタプログラミング (方言))
- 赤(関数型、命令型、オブジェクト指向 (プロトタイプベース)、メタプログラミング (方言))
- ROOP (命令型、ロジック、オブジェクト指向 (クラスベース)、ルールベース)
- リング(命令型、関数型、オブジェクト指向 (クラスベース)、メタプログラミング、宣言型、自然)
- Ruby (命令型、関数型、オブジェクト指向 (クラスベース)、メタプログラミング)
- Rust (並行、関数型、命令型、オブジェクト指向、ジェネリック、メタプログラミング、コンパイル型)
- Scala (関数型、オブジェクト指向)
- Seed7 (命令型、オブジェクト指向、汎用)
- SISAL (並行、データフロー、関数型)
- スプレッドシート(機能的、視覚的)
- Swift (プロトコル指向、オブジェクト指向、関数型、命令型、ブロック構造)
- Tcl (関数型、命令型、オブジェクト指向 (クラスベース))
- Tea (関数型、命令型、オブジェクト指向 (クラスベース))
- V (Vlang) (機能的、命令的、手続き的、構造化、並行)
- Windows PowerShell (関数型、命令型、パイプライン、オブジェクト指向 (クラスベース))
- Wolfram Mathematica ( Wolfram 言語)
数値解析
CやPythonなどのいくつかの汎用プログラミング言語も技術計算に使用されますが、このリストでは、ほぼ技術計算専用に使用される言語に焦点を当てています。
英語以外の言語
- 中国語BASIC(中国語)
- フィヨルニル(アイスランド語)
- 言語 Symbolique d'Enseignement (フランス語)
- ラピラ(ロシア語)
- エジル(タミル語)
オブジェクト指向クラスベース言語
クラスベースのオブジェクト指向プログラミング言語は、クラスによって定義されたオブジェクトをサポートします。クラス定義にはメンバー データが含まれます。メッセージ パッシングは、オブジェクト指向言語の主要な概念ではないにしても、重要な概念です。
一部の引数のクラスによってパラメータ化された多態的関数は、通常、メソッドと呼ばれます。単一ディスパッチの言語では、クラスには通常、メソッド定義も含まれます。多重ディスパッチの言語では、メソッドはジェネリック関数によって定義されます。単一ディスパッチメソッドがジェネリック関数である例外もあります(例: Biglooのオブジェクト システム)。
単一ディスパッチ
- アクションスクリプト3.0
- 俳優
- Ada 95およびAda 2005 (多目的言語)
- オーストラリア
- ベータ
- C++
- C#
- セイロン
- ダーツ
- オキシジェン(旧称クローム)
- チャック
- コブラ
- コールドフュージョン
- カール
- だ
- 分散アプリケーション仕様言語(DASL)
- デルファイ オブジェクトパスカル
- え
- GNU E
- エッフェル
- フォートラン2003
- 要塞
- ガンバス
- ゲームメーカー言語
- 港
- J
- ジャワ
- ラボビュー
- ルア
- Modula-2 (データ抽象化、情報隠蔽、強力な型付け、完全なモジュール性)
- Modula-3 (Modula-2 にオブジェクト指向機能を追加)
- ネメルル
- ネットレックス
- Oberon-2 (独自の、強く型付けされた、Wirthian 方式による完全なオブジェクト指向同等性)
- オブジェクトパスカル
- オブジェクト REXX
- Objective-C ( Smalltalk派生のオブジェクト モデルとメッセージ パッシング構文を追加した C のスーパーセット)
- オカムル
- OpenEdge アドバンスドビジネス言語(ABL)
- Oz、モーツァルトプログラミングシステム
- パール5
- PHP の
- パイク
- プログラム
- Python (解釈型言語、オプションでオブジェクト指向)
- 革命(プログラマーはオブジェクトを選択できない)
- 指輪
- ルビー
- スカラ
- スピークイージー
- Simula ( Ole-Johan DahlとKristen Nygaardによって開発された最初のオブジェクト指向言語)
- Smalltalk (純粋なオブジェクト指向、Xerox PARCで開発)
- スピン
- スーパーコライダー
- VBScript (Microsoft Office の「マクロ スクリプト」言語)
- ビジュアルデータフレックス
- ビジュアルフォックスプロ
- ビジュアルプロローグ
- 10++
- ゾジョ
- XOTcl
オブジェクト指向プロトタイプベース言語
プロトタイプベースの言語は、クラスとインスタンスの区別がなくなったオブジェクト指向言語です。
- 1C:エンタープライズプログラミング言語
- アクターベースの並行言語(ABCL、ABCL/1、ABCL/R、ABCL/R2、ABCL/c+)
- アゴラ
- セシル
- ECMAスクリプト
- アクションスクリプト
- XML 用 ECMAScript
- JavaScript (最初は Mocha、その後 LiveScript と名付けられました)
- JScript
- Etoys in Squeak
- イオ
- ルア
- モー
- ニュートンスクリプト
- オブリク
- R
- レボル
- 赤
- Self ( Smalltalkから派生した最初のプロトタイプベースの言語)
- タッド
オフサイドルール言語
オフサイドルール言語では、インデントによってコードブロックを表します。
手続き型言語
手続き型プログラミング言語は、実行可能なコード ステートメントのユニットとスコープ (データ表示範囲) の概念に基づいています。手続き型プログラムは、ユーザーがコーディングするか、コード ライブラリで提供される 1 つ以上のユニットまたはモジュールで構成されます。各モジュールは、言語に応じて関数、ルーチン、サブルーチン、またはメソッドとも呼ばれる 1 つ以上のプロシージャで構成されます。手続き型言語の例には、次のものがあります。
- Ada(多目的言語)
- アルゴル58
- ALGOL 60 (非常に影響力のある言語設計)
- 小さな機械のALGOLのような言語
- アルゴル68
- アルマ-0
- BASIC (特に1990年以前のバージョンではモジュール性がほとんどありません)
- BCPL
- 至福
- C
- C++
- C# (Java/C++ に類似)
- セイロン
- チル
- ChucK (時間と並列処理のための新しい構文要素を備えた C/Java のような構文)
- コボル
- コブラ
- コールドフュージョン
- CPL (複合プログラミング言語)
- カール
- だ
- 分散アプリケーション仕様言語(DASL) (宣言型プログラミングと命令型プログラミングを組み合わせたもの)
- ECMAスクリプト
- アクションスクリプト
- XML 用 ECMAScript
- JavaScript (最初は Mocha、その後 LiveScript と名付けられました)
- JScript
- ソース
- エッフェル
- 4番目
- Fortran (後の標準ではモジュール性が向上しました)
- ガウス
- 行く
- 港
- ハイパートーク
- ジャワ
- 陽気な
- ジュリア
- 言語 H
- 投げ縄
- Modula-2 (基本的にモジュールベース)
- マテリアライズド
- メサ
- MUMPS (最初のリリースは当時の他の言語よりもモジュール化されていましたが、それ以降、標準はさらにモジュール化されています)
- ネメルル
- ニム
- Oberon、Oberon-2(Modula-2の改良版、小型化、高速化、安全性が向上した後継機)
- オカムル
- オッカム
- オリエル
- Pascal (ALGOL 60 の後継、Modula-2 の前身)
- フリーパスカル(FPC)
- オブジェクトパスカル、デルファイ
- PCASTL
- パール
- パイク
- プラス
- PL/I (IBM メインフレーム向けの大規模汎用言語)
- プラス
- パワーシェル
- 散文
- パイソン
- R
- 楽
- ラピラ
- ロールプレイング
- さび
- S-ラング
- VBスクリプト
- ビジュアルベーシック
- ビジュアルフォックスプロ
- Wolfram Mathematica ( Wolfram 言語)
- Microsoft Dynamics AX (X++)
クエリ言語
反射言語
リフレクション プログラミング言語を使用すると、プログラムは実行時またはコンパイル時に高レベルの構造を調べ、場合によっては変更できます。これは、Smalltalkなどの高レベルの仮想マシン プログラミング言語で最も一般的ですが、 Cなどの低レベルのプログラミング言語ではあまり一般的ではありません。リフレクションをサポートする言語とプラットフォーム:
- ベファンジ
- セイロン
- 魅力
- チャック
- コマンドライン
- コブラ
- コンポーネント Pascal BlackBox コンポーネント ビルダー
- カール
- サイファー
- デルファイ オブジェクトパスカル
- ECMAスクリプト
- エマックスリスプ
- エッフェル
- 港
- ジュリア
- 仮想マシン
- リスプ
- ルア
- モードシステム
- オベロン-2 – ETH オベロン システム
- オブジェクティブC
- PCASTL
- パール
- PHP の
- ピコ
- ポプログ
- パワーシェル
- プロローグ
- パイソン
- 楽[30]
- レボル
- 赤
- 指輪
- ルビー
- Smalltalk (純粋なオブジェクト指向、元々はXerox PARC発)
- スノボル
- Tcl
- Wolfram Mathematica ( Wolfram 言語)
- XOTcl
- 10++
- ゾジョ
ルールベース言語
ルールベースの言語は、データセット内の条件によってアクティブ化されたときにルールをインスタンス化します。すべての可能なアクティブ化のうち、いくつかのセットが選択され、それらのルールに属するステートメントが実行されます。ルールベースの言語には次のものがあります。[引用が必要]
- awk
- クリップ
- クレア
- 制約処理ルール
- よだれ
- GOALエージェントプログラミング言語
- ジェス
- OPS5
- プロローグ
- ToonTalk – ロボットはルール
- Wolfram Mathematica ( Wolfram 言語)
- XSLT [引用が必要]
スクリプト言語
- エンジェルスクリプト
- AppleScript
- オートホットキー
- オートイット
- AWK
- 紀元前
- ビーンシェル
- バッシュ
- Ch (埋め込み可能な C/C++ インタープリター)
- コマンドライン
- CLIST
- コールドフュージョン
- ECMAスクリプト
- アクションスクリプト
- XML 用 ECMAScript
- JavaScript (最初は Mocha、その後 LiveScript と名付けられました)
- JScript
- ソース
- エマックスリスプ
- CMS 実行
- エグゼクティブ2
- ゲームメーカー言語(GML)
- GDスクリプト
- イオ
- ジャス
- Julia (デフォルトではマシンコードにオンザフライでコンパイルされますが、インタープリタも利用可能)
- 仮想マシン
- Ksh
- 投げ縄
- ルア
- MAXスクリプト
- メル
- オブジェクト REXX (OREXX、OOREXX)
- オリエル
- パスカルスクリプト
- パール
- PHP (Web サーバー向け)
- パワーシェル
- パイソン
- R
- 楽
- レボル
- 赤
- レックス
- 回転
- 指輪
- ルビー
- S-ラング
- sed
- シュ
- 雑談
- リス
- お茶
- Tcl
- トルクスクリプト
- VBスクリプト
- WebDNA、データベース駆動型ウェブサイト専用
- Windows PowerShell ( .NETベースの CLI)
- Unix シェルやVMS 上のDIGITAL Command Language (DCL)などの多くのシェル コマンド言語には、強力なスクリプト機能があります。
スタックベースの言語
スタックベース言語は、スタックデータ構造に基づいたデータ構造化言語の一種です。
同期言語
同期プログラミング言語は、頻繁に中断され、迅速に応答する必要があるリアクティブ システムのプログラミングに最適化されています。このようなシステムの多くは、リアルタイム システムとも呼ばれ、組み込みシステムでよく使用されます。
例:
シェーディング言語
シェーディング言語は、シェーダー効果のプログラミングに適したグラフィックス プログラミング言語です。このような言語形式は通常、「カラー」や「法線」などの特殊なデータ型で構成されます。3D コンピュータ グラフィックスのターゲット市場は多岐にわたります。
リアルタイムレンダリング
これらは、変換とシェーディングの方程式をハードコードしていた以前のパラダイムよりも、高度なハードウェア抽象化とより柔軟なプログラミング モデルの両方を提供します。これにより、プログラマーはレンダリング プロセスをより細かく制御でき、より低いオーバーヘッドでより豊富なコンテンツを提供できます。
- Adobeグラフィックスアセンブリ言語(AGAL)[31]
- ARBアセンブリ言語(ARBアセンブリ)
- OpenGL シェーディング言語(GLSL または glslang)
- 高水準シェーディング言語(HLSL) または DirectX シェーダアセンブリ言語
- PlayStation シェーダー言語(PSSL)
- メタルシェーディング言語(MSL)
- CG
オフラインレンダリング
オフライン レンダリングで使用されるシェーディング言語は、最高の画像品質を生み出します。このようなシェーダーの処理には時間がかかります。フォトリアリスティックな結果を生み出す能力があるため、必要な計算能力は高価になる可能性があります。
- RenderMan シェーディング言語(RSL)
- オープンシェーディング言語(OSL)
構文処理言語
これらの言語は、文脈自由文法の字句解析器とパーサーの生成を支援します。
- ANTLR
- Coco/R (セマンティクス付き EBNF)
- GNU bison (FSF の Yacc バージョン)
- GNU Flex (Lex の FSF バージョン)
- lex (語彙解析、ベル研究所)
- M4
- 構文解析式文法(PEG)
- プロローグ
- エマックスリスプ
- リスプ
- 楽[32]
- セーブルCC
- スキーム
- yacc (ベル研究所のもう一つのコンパイラ コンパイラ)
- JavaCC
システム言語
システム プログラミング言語は、メモリ管理やタスク管理などの低レベルのタスク用です。システム プログラミング言語は通常、システム プログラミングに使用されるプログラミング言語を指します。このような言語は、通常、アプリケーション ソフトウェアとは異なる開発アプローチを必要とするシステム ソフトウェアの作成用に設計されています。
システム ソフトウェアは、コンピュータ ハードウェアを操作および制御し、アプリケーション ソフトウェアを実行するためのプラットフォームを提供するように設計されたコンピュータ ソフトウェアです。システム ソフトウェアには、オペレーティング システム、ユーティリティ ソフトウェア、デバイス ドライバー、コンパイラ、リンカーなどのソフトウェア カテゴリが含まれます。システム言語の例には、次のものがあります。
変換言語
変換言語は、特定の形式言語で指定されたソース コードを、定義された宛先形式コードに変換 (翻訳) する目的で使用されます。これは、内部結果を後続の処理ルーチンへの入力として採用するために、より複雑なスーパー システムの中間コンポーネントで最もよく使用されます。
視覚言語
ビジュアル プログラミング言語を使用すると、ユーザーはさまざまな種類のグラフィック レイアウトを使用して、1 次元のテキスト文字列ではなく 2 次元 (またはそれ以上) でプログラムを指定できます。一部のデータフロー プログラミング言語もビジュアル言語です。
言語
コンピュータ科学者のNiklaus Wirth は、いくつかの影響力のある言語を設計し、実装しました。
XMLベースの言語
これらは XML に基づく言語、またはXML上で動作する言語です。
参照
注記
- ^ SQL のオブジェクトは、テーブルと呼ばれるデータベース レコードのコレクションです。完全なプログラミング言語では、実行時間に関係なく、アルゴリズムを指定できます。したがって、アルゴリズムは使用可能な結果を生成するものと考えることができます。対照的に、SQL は、結果の正確さを記述するのではなく、現在のコレクション、つまりシステム内の手元のデータに限定されたレコードのみを選択できます。
- ^ 注目すべき例外はソビエト/ロシアの1801シリーズCPUで、当初は自国の国産ISAを使用していましたが、後に政策上の決定によりPDP-11互換になるように再設計されました。
- ^ ab サブモデルはリストされず、ベースモデルのみが表示されます。
- ^ Julia には、従来のシングルディスパッチ OO セマンティクスを持つ オブジェクトの概念は存在しません。代わりに、実行時に異なる型に対してより一般的なマルチディスパッチが行われます。
- ^ Swift は自動参照カウントを使用します。
参考文献
- ^ 「Operators」 . 2024年5月13日閲覧。
- ^ 「ラップ」。
- ^ 「楽焼の様相」
- ^ 「Christopher Diggins: 連結性言語とは何か」 Drdobbs.com. 2008-12-31 . 2013-07-01閲覧。
- ^ 「フィード演算子」。
- ^ ドキュメント » Python 標準ライブラリ » 同時実行
- ^ 「チャネルとその他のメカニズム」。
- ^ 「ProblemSolver」.
- ^ ab "インデントベースの構文 · rsdn/nemerle Wiki". GitHub 。2022-03-18に取得。
- ^ 「Solidity: Solidity 0.8.11 ドキュメント」.
- ^ 「イテレータ」。
- ^ 「メモリ管理 · BlitzMax」。2023年7月14日閲覧。
- ^ 「ポインター・BlitzMax」 。 2023年7月14日閲覧。
- ^ “BRL.Blitz · BlitzMax” . 2023年7月14日閲覧。
- ^ 「ILE COBOL プログラムでのポインターの使用 - IBM ドキュメント」。IBM。2023年 7 月 14 日閲覧。
- ^ 「HEAP - IBM ドキュメント」。IBM 。2023年 7 月 14 日閲覧。
- ^ 「変更された SOM ベースの OO COBOL 言語要素 - IBM ドキュメント」。IBM 。2023年 7 月 14 日閲覧。
- ^ 「メモリ割り当て — Cython 3.0.0.dev0 ドキュメント」 。2023年 7 月 14 日閲覧。
- ^ 「ガベージコレクション」。Dプログラミング言語。 2022年3月18日閲覧。
- ^ 「Nim のメモリ管理」 。2022年 3 月 18 日閲覧。
- ^ Adobe (1999 年 2 月). PostScript 言語リファレンス、第 3 版(PDF) . Addison-Wesley Publishing Company. pp. 56–65.
- ^ 「ネイティブコードの相互運用性 - Scala Native 0.4.14 ドキュメント」 。2023年 7 月 5 日閲覧。
- ^ 「Projects/Vala/ReferenceHandling - GNOME Wiki!」。2024年1月21日時点のオリジナルよりアーカイブ。2022年3月21日閲覧。
- ^ 「所有権を理解する - Rust プログラミング言語」. doc.rust-lang.org。
- ^ 「スマートポインタ - Rust プログラミング言語」. doc.rust-lang.org .
- ^ Jon Bentley (AT&T) 1986年8月CACM 29 (8) 「Little Languages」、pp 711-721、Programming Pearlsコラムより
- ^ 「メタプログラミング: 何、なぜ、どのように」 2011-12-14.
- ^ 「属性からコードを生成するための手続き型マクロ」。doc.rust-lang.org。
- ^ 「クラスと役割」。
- ^ 「メタオブジェクトプロトコル(MOP)」。
- ^ Scabia, Marco. 「AGAL とは」。Adobe Developer Connection。Adobe。2018年5 月 8 日閲覧。
- ^ 「文法」.
- ^ Wulf, WA; Russell, DB; Haberman, AN (1971 年 12 月). 「BLISS: システムプログラミング言語」. Communications of the ACM . 14 (12): 780–790. CiteSeerX 10.1.1.691.9765 . doi :10.1145/362919.362936. S2CID 9564255.
- ^ 「C++ アプリケーション」。
- ^ 「D 言語を使用する組織」。Dプログラミング言語。
- ^ 「Mozilla Research」2014年1月1日。
