クイズ問題: 「Beginner's All-Purpose Symbolic Instruction Code」の頭文字から名付けられた、コンピュータのプログラム言語は何でしょう?
答え: BASIC

関連するWikipedia記事の抜粋:
title: Javaプラットフォーム
text: Javaプラットフォーム(ジャバプラットフォーム、英: Java Platform)は、Javaで記述されたプログラムの開発および実行を行うことのできるソフトウェア群の総称である。
title: Smalltalk
text: Smalltalk(スモールトーク)は、Simula のオブジェクト(およびクラス)、LISPの徹底した動的性、LOGO のタートル操作や描画機能に、アラン・ケイの「メッセージング」というアイデアを組み合わせて作られたクラスベースで手続き型の純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。
title: ウィジェット・ツールキット
text: ウィジェット・ツールキット (widget toolkit) あるいは GUIツールキット とは、グラフィカルユーザインタフェース (GUI) を構成する部品の集まりである。通常、ライブラリやアプリケーションフレームワークの形式で実装される。分野によって、ウィジェットはコントロール、コンポーネントとも呼ばれる。デスクトップアプリケーションの作成に用いられる。
title: GTK (ツールキット)
text: GTK (以前は GTK+, The GIMP Toolkit) は、クロスプラットフォームのウィジェット・ツールキット(GUIツールキット)である。当初は、GIMPの実装のために開発され、現在は、GNOMEデスクトップ環境のツールキット等として広く利用されている。
title: JavaScript
text: JavaScript(ジャバスクリプト)とは、プログラミング言語のひとつである。JavaScriptはプロトタイプベースのオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。
title: Java Native Interface
text: Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。Java言語からネイティブコードを利用するためのABIと、逆にネイティブコードからJavaバイトコードを動作させるためにバーチャルマシン (VM) を利用するためのAPIの2つから成る。
title: REBOL
text: REBOL は、データ交換言語であり、通信や分散処理に特化したプログラミング言語である。Relative Expression Based Object Language の略。設計者カール・サセンラスはこれをメッセージング言語と呼び、「REBOL の主なアイデアは、サーバ、クライアント、その間の通信やそれらのストレージで使える言語にするというものであった。REBOLの能力は、プログラミング言語の概念とメタデータ言語の概念を統合したことに由来する。REBOLの究極の目的は、インターネット上のあらゆる機器間で情報がどのように格納され、交換され、処理されるかを表す新たなアーキテクチャを提供することである。すなわち、人間と機械の間の情報の意味論的交換に使われることを意味する」と述べている。
title: BCPL
text: BCPL (Basic Combined Programming Language、Basic-CPL)は手続き型で命令型の構造化プログラミング言語である。BCPLは元々ほかの言語を開発するために記述されたコンパイラであり、90年代以降は利用されていない。しかしながらBCPLはB言語の基礎となっており、B言語から派生したC言語は文法的にBCPLの亜種であるといえるため、その影響は現在にも色濃く残されている。BCPLは今日のモダンなプログラミング言語に見られる、カッコやデリミタなどの特徴を備えていた。1966年にケンブリッジ大学のマーティン・リチャーズ(英語版)が設計した。
title: NetBeans
text: NetBeans(ネットビーンズ)とは、オラクル(買収以前はサン・マイクロシステムズ、以下同)を中心としたコミュニティにより開発されている、オープンソースの統合開発環境 (IDE) である。Java/PHP/C言語/C++/JavaScript/Groovy等のいくつかのプログラミング言語に対応している。NetBeans Platformを利用して開発されており、様々なモジュールを組み込むことが可能である。NetBeansの特徴の一つであるGUIエディタ (Project Matisse) もその一つである。
title: スタック
text: 機械語命令の体系がスタック指向プログラミング言語に類似している、すなわち、命令のオペランドがスタックであるマシンをスタックマシンと言う。最も有名なものとしてバロース B5000がある(B5000は、高水準言語(ALGOL)のサポートを目的として、前述のコールスタックもアーキテクチャでサポートしているが、コールスタックをアーキテクチャでサポートしている、という意味では「スタックマシン」の語は使わない)。
title: MATLAB
text: MATLABは、MATrix LABoratoryを略したものであり、行列計算、ベクトル演算、グラフ化や3次元表示などの豊富なライブラリを持った、インタプリタ形式の高性能なテクニカルコンピューティング言語、環境としての機能を持つ。標準で数多くのライブラリを有しているが、それ以上のデータ解析や統計、アプリケーション展開などが必要な場合にはToolboxと呼ばれる拡張パッケージをインストールすることで、MATLABの機能拡張を図ることができる。MATLABとToolboxは総合してMATLABプロダクトファミリと呼ばれる。
title: ハイパーテキスト
text: 1980年、ティム・バーナーズ=リーはENQUIREを開発した。ENQUIREは初期のハイパーテキストデータベースシステムで、いくぶんかウィキに似たものだった。1980年代の終わり、当時CERNに所属していたバーナーズ=リーは、世界中に分散する別々の大学や研究所で働いている研究者たちが自動的に情報を共有する、という要求に対してWorld Wide Webを開発した。
title: Parrot
text: Polymorphic Container(PMC, 以前はParrot Magic Cookieの略とされていた)は、クライアント言語が扱う型を拡張するための仕組みである。
title: JavaScriptエンジン
text: JavaScriptエンジン (英語: JavaScript engine) は、JavaScriptのコードを実行するコンピュータプログラムである。初期のJavaScriptエンジンは単なるインタプリタであったが、近年の全てのエンジンは、性能の向上のためにJITコンパイルを利用している。
title: スクリプトエディタ
text: スクリプトエディタは、macOS標準搭載の、AppleScriptなどのOSA (Open Scripting Architecture) 言語を記述、実行、保存、簡易デバッグするためのアップル製GUIアプリケーションである。OSA言語はmacOSで動くコンピュータ上のGUIアプリケーションの自動化、機能の拡張や再構成のために用意されている機構。
title: RPL (プログラミング言語)
text: RPLはRPNに基づいた構造化プログラミング言語であるが、数値だけでなく代数式や方程式も扱える。RPLはスレッド化されたインタプリタとして実装されている。RPLはForth言語と多くの類似点がある。両言語はスタック指向であり、Lispのようなリスト指向だけではない。以前のHP社のRPN電卓(4レベル固定スタック)に反して、RPLが使えるスタックは利用可能な電卓のRAMさえ余っていれば、スタックのレベル数を増やせる。
title: GNU Guile
text: GNU Guile は、プログラミング言語 Scheme のインタープリタ/バーチャルマシン。1993年に初めてリリースされた。 GuileはPOSIXシステムコールのモジュール化された拡張やAPL アレイの機能などを含み、オブジェクト ライブラリとしてパッケージングされている。「Libguile」を使うことで、Guileを他のプログラムの中に組み込んで、 他言語との密接な統合が可能なインターフェースとして使用することができる。
title: マーク・アンド・スイープ
text: マーク・アンド・スイープ(mark-and-sweep)は、ガベージコレクションの実装方法およびガベージコレクタの動作方法の一つ。
title: スクリプト言語
text: スクリプト言語の一種は、ジョブ制御の自動化から生み出されたもので、システムプログラムの起動と制御を行う。そういう意味ではシェルの祖先としてIBMの Job Control Language(JCL、ジョブ制御言語)があるとも言える。この種の言語の処理系(インタプリタ)の多くは、UNIXのシェルやMS-DOSのCOMMAND.COMといったコマンドラインインタプリタと呼ばれるものである。他にも英語のようなコマンドでスクリプトを書ける AppleScript などもある。macOS では、CocoaとAppleScript或いはJavaScriptを使ってアプリケーション全体を構築することもできる。
title: Java仮想マシン
text: Java仮想マシン (Java virtual machine、Java VM、JVM) は、Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン。APIやいくつかのツールとセットでJava実行環境 (JRE) としてリリースされている。この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。
title: Microsoft Windows
text: Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群である。グラフィカルユーザインタフェース (GUI) を採用している。Windows発売以前では高価なワークステーション(ハイエンドパソコンを上回る性能のデスクトップコンピュータ)でしか実現されていなかった使い勝手の良さを標準的な規格のパソコンに取り込んで行き、一般向けのシェアを伸ばして来た。
title: APL
text: APL(エーピーエル)は、プログラミング言語のひとつで、1957年のケネス・アイバーソンによる創案に基づいた独特の表記法を用いる。処理系の実装は、ほとんどが対話型インタプリタである。とくに多次元配列の柔軟な処理が特徴である。「APL」は「プログラミング言語」(a programming language) の略であるが、言語の特性から、ときに「配列処理言語」(array processing language) などとされる。
title: ガベージコレクション
text: MLやHaskell、APLなどの関数型言語の多くはガベージコレクションが組み込まれている。特に、関数型言語の先駆けとなったLISPは最初にガベージコレクションを取り入れた言語でもある。
title: PowerShell
text: PowerShellはオブジェクト指向言語であり、基本的な機能をもつ様々なコンポーネントを組み合わせたタスクによって構成される。コンポーネントは、コマンドレット (cmdlet) と呼ばれるプログラムであり、その実体は.NETのクラスである。
title: IPython
text: IPython(アイパイソン)はPythonを対話的に実行するためのシェルである。CPython内蔵の対話的に実行するためのシェルと比べ、型推定を強化し、対話的実行のための文法を追加してあり、コード・ハイライティングおよびタブによる補完が行える。IPython は SciPy パッケージの一部として公開されている。
title: 議政府
text: Stackless Python(スタックレス・パイソン)ないしは Stackless は Python プログラミング言語の実験的な実装系であり、自身のスタックとしてC言語のコールスタックに依存しないことから命名されている。
title: 動的データ交換
text: DDEの一般的な用途としては、市販のソフトウェアの制御を行うためのカスタムアプリケーションがある。たとえば、Microsoft ExcelとDDE対話を開始してDDEコマンドを送り、スプレッドシートを開いてデータを追加したりする社内向けカスタムアプリケーションが、C言語やその他のプログラミング言語で開発されるなどといったことができる。しかし今日では、(COMの一部である)OLE Automationでエクセルオブジェクトモデルが使われるようになっている。
title: メソッド (計算機科学)
text: オブジェクト指向プログラミングにおけるメソッドという用語は元々SmalltalkによってSimulaのメンバープロシージャー (member procedure) をメッセージとメソッドに分けるために導入された。C++ ではメンバー関数と呼ばれるが、これはSimulaのメンバープロシージャーをC言語に流用したことに由来している。Javaのような言語やマイクロソフトなどの企業がメソッドという用語を使っているのは、元々C++よりもSmalltalkの影響を受けていたためである。近年では言語設計やOS開発等で直接Smalltalkの影響を受けていない場合でも、Javaやマイクロソフト等の影響によりメンバープロシージャーやメンバー関数に当たるものをメソッドと呼ぶことが一般化している。
title: オペレーティングシステム
text: なお、1980年代の別の特筆すべき流れとして、GUIを標準装備したアップルコンピュータのMacintoshがある。MacintoshのOS (Mac OS) は、当時の性能的制約から、多くの部分がファームウェアの状態でハードウェアに組み込まれてはいたが、現在でいうウィジェット・ツールキットを含むToolboxと呼ばれるAPI群を持ち、アプリケーションにおけるGUIのデザイン開発をある程度まで標準化した。
title: ボーランド
text: 特に「Turbo C」は、現在では一般的である、エディタ・コンパイラ・デバッガ・プロファイラなどが一体となった統合開発環境の先駆けであり、圧倒的なコンパイルスピードと相まって当時のプログラム開発者に大きな衝撃を与えた。当時単独コマンド式のコンパイラ「Microsoft C」のみしか持たなかったMicrosoftも「Quick C」などのGUI開発環境を開発して対抗した。
title: Web Server Gateway Interface
text: Web Server Gateway Interface (WSGI; ウィスキー) は、プログラミング言語Pythonにおいて、WebサーバとWebアプリケーション(あるいはWebアプリケーションフレームワーク)を接続するための、標準化されたインタフェース定義である。また、WSGIから着想を得て、他の言語でも同様のインタフェースが作られた。
title: メモリリーク
text: プログラミング言語によってはメモリ解放をコンピューター(仮想マシン、フレームワークなどのシステム側)に委ねるガベージコレクションが取り入れられており、メモリリークが起きにくくなっている。ガベージコレクションを言語組み込みの機能として持つ言語には、LispやJava、C#/VB.NETなどの.NET言語全般、Objective-C(バージョン2.0以降)、PHP、Pythonなどがある。
title: 西條遊児
text: WEB(ウェブ)は、ドナルド・クヌースによって設計および開発されたプログラミングの仕組みであり、TeX の実装に用いられていることで知られる。
title: LAMP (ソフトウェアバンドル)
text: LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。動的(ダイナミック)なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。これらは、それぞれ独自に開発されたものである。
title: IDLE (Python)
text: IDLEはPython用の統合開発環境であり、マルチウィンドウ型のテキストエディタである。バージョン1.5.2b1以降のPythonに標準で付属している。
title: プログラミングツール
text: 統合開発環境 (IDE) は、元々は、シングルタスク環境であったパーソナルコンピュータにおいて、1個のアプリケーションで編集・コンパイルのフロントエンド・デバッガ等、各種の作業を行えるようにしたものから始まっている。前述のSmalltalkのような環境を、パーソナルコンピュータでなんとか実現しようとしたもの、と見ることもできる。その後パーソナルコンピュータでも、Windowsや、あるいはUNIXライクOS(Linuxなど)が使えるようになると、例えばEclipseなど、より洗練された(Smalltalkのそれに近い)環境などが現れたが、MS-DOS以来の伝統を残すVisual Studioなどもまだ使われている(しかし近年、Windows以外のバージョンを中心に、その中身はXamarin Studioに置き換わりつつある)。
title: JX (オペレーティングシステム)
text: JXは、カーネルとアプリケーションの両方をJavaプログラミング言語を使って実装したマイクロカーネルオペレーティングシステムである。
title: バロース B5000
text: NEWPで書かれたOSとALGOLで書かれたユーザープログラムの中間に位置するものとしてミドルウェアがある。ミドルウェアはDCALGOL (data comms ALGOL) で記述される。これはOSおよびプロセス間のメッセージ交換に使われる。例えばCOMSというミドルウェアはネットワークからメッセージを受け取り、それを特定のプロセスやMCS(メッセージ制御システム)にディスパッチする。
title: Smalltalk
text: アラン・ケイが「オブジェクト指向」という言葉を創った当初は、Smalltalk システムが体現した「パーソナルコンピューティングに関わる全てを『オブジェクト』とそれらの間で交わされる『メッセージ送信』によって表現すること」を意味していた。しかしのちに、C++ の設計者として知られるビャーネ・ストロヴストルップが(自身、Smalltalk の影響は受けていないと主張する)C++ の設計を通じて整理し発表した「『継承』機構と『多態性』を付加した『抽象データ型』のスーパーセット」という考え方として広く認知されるようになった(カプセル化、継承、多態性)。現在は、両者の渾然一体化した曖昧な概念として語られることが多い。
title: ワークステーション
text: 1980年代、UNIXをベースとしたクライアントサーバモデルのクライアントとして、オペレーティングシステム (OS) がUNIXによる「UNIXワークステーション」が登場した。これらは、光学ペンやタブレットなどの入力やプロッタなどの多数のインタフェースを有し、大規模なメモリを搭載し、設計、学術計算などに使用された。
title: GNU Compiler for Java
text: CNI (Compiled Native Interface)は、ネイティブアプリケーションやC++で記述されたライブラリを、Javaコードとの間で相互に呼び出せるようにするためのGCJのためのソフトウェアフレームワークである。
title: LOGO
text: LOGO(ロゴ)は、教育向けとして設計されたマルチパラダイムのコンピュータプログラミング言語である。しばしば簡易言語だと誤解されていることもあるが、再帰なども扱える言語としての機能、リストなどのデータ構造や、I/O・ファイルなどの一般的な機能を持ったライブラリなど、簡易言語ではなく、十分な能力を持ったプログラミング言語である。特徴的な機能としては「タートルグラフィック」がある。
title: ダグラス・エンゲルバート
text: この提案によりARPAから予算がつき、作業を開始することになった。新たに Augmentation Research Center (ARC) をSRI内に創設し、研究員を集め、oN-Line System (NLS) の開発と設計を主導した。ARCでは、ビットマップ・スクリーン、マウス、ハイパーテキスト、グループウェア、先駆的なグラフィカルユーザインタフェース (GUI) などのインタフェース要素を開発した。彼は1960年代中ごろにユーザインタフェース (UI) のアイデアの多くを考案し開発した。そのころパーソナルコンピュータはもちろんないし、コンピュータは一般の人々には遠い存在で直接使用するなどほとんどあり得なかったし、ソフトウェアも個々のシステム向けの専用アプリケーションとして書かれることが多かった。
title: Perl
text: Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理などのプログラムを書くのに広く用いられている。
title: MIX (プログラミング)
text: MIX とは、ドナルド・クヌースが著書 The Art of Computer Programming (TAoCP) で使った仮想計算機である。1960年代に生まれた MIX は、今後の TAoCP の版では MMIX という新たな(仮想の)コンピュータアーキテクチャで置換される予定である。MIX と MMIX のソフトウェア実装(MIXware および MMIXware)はクヌースが開発しており、自由に利用可能となっている。クヌースの MIX/MMIX エミュレータからの派生版も存在する。GNU MDK がその一例で、フリーソフトウェアとして幅広いプラットフォーム上で動作する。
title: ポインタ (プログラミング)
text: 多くのプログラミング言語においてポインタあるいはポインタに類する機能を利用できるが、C/C++に言語機能として実装されたポインタが特に有名である。なお、C++には、ポインタとは独立した類似の言語機能として、「参照」がある(#参照の節を参照)。
title: Component Object Model
text: Windows 8およびWindows RTにて、新たなアプリケーションの開発・実行基盤としてWindowsランタイム (WinRT) が導入された。WinRTはCOMを拡張したネイティブ技術であるが、Windowsメタデータ (WinMD) および言語プロジェクション (language projection) と呼ばれる技術により、.NET言語やJavaScriptなどからも透過的に利用可能である。
title: Microsoft Macro Assembler
text: Microsoft Macro Assembler(マイクロソフト・マクロ・アセンブラ、MASMと略す)はx86系マイクロプロセッサ用のアセンブラである。マイクロソフトがMS-DOS上の開発のために製造し、DOS上では最も普及したアセンブラであった。豊富なマクロと高水準な繰返し(loop)構造、手続き(procedure)呼び出しなどの構造化プログラミングに対応している。高級アセンブラに分類できる。。
title: インタフェース (抽象型)
text: マイクロソフトのComponent Object Model (COM) は、プログラミング言語を問わず再利用可能なソフトウェアコンポーネントを作成するために用いられる技術であり、COMインタフェースはIUnknown派生の実装を持たない抽象型として、COMサーバーとCOMクライアントをつなぐ役割を果たす。COMの思想や概念はのちに.NET FrameworkやWindowsランタイムにも受け継がれることになった。
title: Job Control Language
text: Job Control Language(JCL、ジョブ制御言語)とは、メインフレームコンピュータで使われるジョブ制御用のスクリプト言語である。処理系によりJCS(Job Control Statement)、ECL(Executive Control Language)とも呼ぶ。
title: コンパイラ
text: もっぱらその言語の処理系がコンパイラとして実装される言語を「コンパイラ言語」などと言い、インタプリタとして実装される言語を「インタプリタ言語」などと言うこともあるが、実験的な実装まで含めればどちらもある言語も多い。Microsoft Visual Studioに付属するF#/C# Interactiveのように、対話環境で入力したプログラムを、コンパイラで共通中間言語(中間表現)にコンパイルし、さらに共通言語ランタイム(仮想機械)上でネイティブコードにJITコンパイルしてインタプリタ的に実行する、というような処理系もある。JavaやMicrosoft Visual Basicのように、登場当初はインタプリタ方式だったが、のちにネイティブコードへのJITコンパイルやAOTコンパイルをサポートするようになった言語もある。
title: PHP (プログラミング言語)
text: PHP(ピー・エイチ・ピー)は \"The PHP Group\" によってコミュニティベースで開発されているオープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページを作成するための機能を多く備えていることを特徴とする。 名称の PHP は再帰的頭字語として、 \"PHP: Hypertext Preprocessor\" を意味するとされており、「PHPはHTMLのプリプロセッサである」とPHP自身を再帰的に説明している。
title: トランスピュータ
text: 初期のOccam開発環境としてインモスは D700 Transputer Development System (TDS) を用意した。エディタ、コンパイラ、リンカ、デバッガを統合した環境である。TDS自体もOccamで描かれたトランスピュータ用アプリケーションである。TDSのテキストエディタはコード折りたたみが可能で、コードの構造をより明確に見せることができる。しかし、プログラミング言語も開発環境も独特なものだったため、トランスピュータ普及にはあまり貢献しなかった。後にインモスは、より一般的なクロスコンパイラ環境 occam 2 Toolsets をリリースした。
title: ペンタブレット
text: ペン状のデバイスでコンピュータを操作する(ペンコンピューティング)と言う古い時代のアイデアとしては、1950年代後半のTom DimondによるStylator (stylus translator) というものが挙げられる。続いて、1960年代にはRAND Tablet(英語版)が生産された。
title: Alto
text: アラン・ケイらによってAlto上で開発された世界初のGUIベースのオペレーティングシステム (OS) 的存在であるSmalltalkは、パーソナルコンピューティングの方向性をエンドユーザーに示すだけでなく、オブジェクト指向の概念を本格的に取り入れた設計で開発者にもアピールし、このときのオブジェクト指向によるOS(APIやフレームワーク)設計は、現在最先端と言われるOSにも今なお色濃い影響を与え続けている。
title: OPEN LOOK
text: OPEN LOOK(Open Lookと記されることも)とは、UNIXワークステーション用グラフィカルユーザインタフェース (GUI) 仕様である。OPEN LOOKは元々、サン・マイクロシステムズとAT&Tコーポレーションにより1980年代後半に定義された。
title: SECDマシン
text: SECDマシンとは、関数型言語のコンパイラのターゲット(目的機械)を意図し、後に大きな影響を与えた抽象機械である。SECD は Stack(スタック)、Environment(環境)、Code(コード)、Dump(ダンプ)の略であり、それぞれ仮想機械にあるレジスタの名称となっている。これらのレジスタはメモリ上の連結リストを指している。
title: IPython
text: Python 標準のシェルでは Tkinter を使った対話的実行環境が利用できるが、IPython では Tkinter に加えて GTK、Qt、WX が利用できる。また IPython ではMPI などを使ったコンピュータ・クラスター環境における並列コンピューティングが可能である。さらに、OS 標準搭載のコマンドライン・シェルとしても (bash、cshなどと同様に) 使うことができ、特に Windows でコマンドライン・シェルとして利用できるのは大きな利点である。IPython のシェルとしての基本的な挙動は Unix の多くのシェルと同様だが、実行中の Python 環境によるカスタマイズや実行の柔軟性が活用できるという利点がある。
title: RPL (プログラミング言語)
text: RPLは、ヒューレット・パッカード社(HP社)が開発した小型電卓のオペレーティングシステム (OS) の一部であり、アプリケーションプログラミング言語である(初期開発者によるとReverse Polish Lispに由来する。一方、HP社のマーケティングは1987年の短い期間の間、RPLから逆にROM-based Procedural Languageという意味をこじつけで作り出そうとした)。
title: Tk (ツールキット)
text: Tkは、GUIを開発するための、オープンソースの、クロスプラットフォームのウィジェット・ツールキットである。デスクトップ・アプリケーションを開発するために通常必要な、ボタン、メニュー、テキスト、フレーム、ラベルなどのウィジェットを提供する。カリフォルニア大学バークレー校の John Ousterhout によって、スクリプト言語 Tclの拡張として開発された。Tk は \"Tool Kit\" の略である。Unix系OS、Macintosh、Microsoft Windowsなどに移植されている。
title: ウィジェット (GUI)
text: ウィジェット(英: Widget)は、グラフィカルユーザインタフェース(GUI)のインタフェース部品(UIパーツ)の総称であり、ウィンドウやテキストボックスなどが含まれる。コントロールとも。ウィジェットは、物理的な対応物との関連で分類されることもある。例えば、マウスカーソルでクリックされる仮想ボタンと、指で押す物理的なボタンといった対応である。ウィジェットは、ウィジェット・ツールキットの形態でまとめて提供されることが多い。プログラマは、ウィジェットを組み合わせてGUIを構築する。
title: MetaPost
text: MetaPostはプログラミング言語、およびそのインタプリタの両方を意味する。ドナルド・クヌースが作ったMETAFONTに由来する。PostScript内における図形の描写に優れる。METAFONTの優れた宣言構文を共有している。
title: JavaScript
text: JavaScriptはウェブブラウザ Netscape Navigatorに起源を持ち、現在では様々な用途に利用されるプログラミング言語である。
title: Parrot
text: Parrot はレジスタベースの仮想機械(仮想マシン)で、動的プログラミング言語を効率的に動作させるために開発された、C言語で書かれたソフトウェアである。Parrotは他の多くの仮想マシンと異なり、型情報を扱うことができる。Parrot アセンブリ言語とPIR(Parrot中間言語)をParrotのバイトコードに変換し、実行することができる。
title: 電卓
text: グラフ電卓はプログラム電卓にグラフを描画する機能が追加されたものである。プログラミング可能であるが、QWERTY配列キーボードを搭載しているものは少数派である。アプリケーションのインストールが可能だったり、CAS(数式処理システム)を搭載したものもある。タッチパネルを搭載したものまである。
title: スタンドアロンBASIC
text: スタンドアロンBASIC (standalone BASIC) は、1980年代ごろの8ビット・16ビットパソコンに内蔵もしくは添付されていた、OSを必要としない(それ自体がOS的な役割を備えている)BASIC言語プログラミング環境のこと。 OSを必要とせず単独で動作することからスタンドアロンと呼ばれる。
title: Object Pascal
text: また、DelphiのVCLやFMXは単なるクラスライブラリにとどまらず、コンポーネントと呼ばれるソフトウェア部品の集合で構成され、このコンポーネントを組み合わせて視覚的にアプリケーションを開発する方式となっている。Delphiではユーザープログラマがコンポーネントを自由に作成して開発環境自体に組み込むことができるため、「コンポーネント指向言語」と呼ばれることもある。
title: プログラム電卓
text: プログラム電卓は、コンピュータのようにプログラムを格納し、プログラム制御によって自動的に複雑な計算を行うことができる電卓である。プログラムは、細長い磁気カードやROMカートリッジにセーブしたり、バッテリーバックアップされたRAMに格納しておいたりする。BASICなどの高水準言語でプログラミングできるものはポケットコンピュータなどとも呼ばれる。
title: Incompatible Timesharing System
text: Incompatible Timesharing System(ITS)は、マサチューセッツ工科大学(MIT)で開発された初期のタイムシェアリングオペレーティングシステム(OS)の1つ。アセンブリ言語で書かれており、CTSS(Compatible Time-Sharing System)との対比で名づけられている。主にMIT人工知能研究所で開発され、Project MACからも何らかの助力があった。
title: Parrot
text: 静的な型付けと動的な型付け言語の異なる性質がParrotの開発の動機となっている。 現在のJava仮想マシンや共通言語ランタイム (CLR) などの人気のある仮想マシンは、静的に型付けされた言語のために開発されているが、Parrotが対象としている言語は動的な型付けのものである。
title: デリゲート (プログラミング)
text: デリゲート (英: delegate) とは、主にC#、Visual Basic .NETなどの、.NET Frameworkのプログラミング言語に用意されている機能であり、参照型の一種(デリゲート型)である。
title: GObject
text: GObject(ジーオブジェクト、GLib Object System)は、移植性の高いオブジェクトシステムと言語間の透過的相互運用性を提供するフリーなライブラリ(LGPL)である。GObjectはC言語で実装されており、他の言語ではバインディングによって利用可能となっている。
title: WebAssembly
text: WebAssemblyは仮想命令セットアーキテクチャあるいはプログラミング言語の一種である。略称はWasm。C・Rustなど様々なプログラミング言語のコンパイルターゲットとしてWasmバイナリは生成され、ウェブブラウザを含む様々な環境内のスタックベース仮想マシンにより実行される。
title: Unixシェル
text: C Shell はビル・ジョイがカリフォルニア大学バークレー校でUnix系OSの一系統の元となったBSD向けに開発した。Version 6 Unixの Thompson shell をベースとしている。C言語をモデルとして構文規則を設計した。対話型の端末で使用することを第一に考えて設計されており、スクリプト言語としてはあまり使われない。C Shell には様々な対話用コマンドがある。
title: ソフトウェア工学
text: 1970年代になると、UNIX、コードリポジトリ、make などの協調的ソフトウェアツールが登場する。1980年代、パーソナルコンピュータが登場し、急速に広まり、市販ソフトウェアも大量に販売されるようになっていった。Smalltalk-80が公開され、オブジェクト指向が新たなパラダイムとして徐々に注目されていった。1990年代になると、オブジェクト指向プログラミング、アジャイルソフトウェア開発、エクストリーム・プログラミングが徐々に主流になっていった。2000年代になると、Java、Ruby、Python、PHP といったインタプリタベースの言語や .NET Framework の マネージコード などが多用されるようになった。
title: Document Object Model
text: DOMの目的の1つはドキュメントをプログラムから解釈・操作可能にすることである。JavaScriptがWebブラウザ用スクリプト言語として誕生した背景から、JavaScriptとDOMには密接な関係がある。WebブラウザはDOMを実装しdocumentオブジェクトなどを介することで、JavaScriptに対してDOMへのアクセスを提供している。いわゆるWebアプリはHTMLで書かれたドキュメントをDOMによって操作可能にしJavaScriptでアプリケーションとしての動作を実現している。
title: VBScript
text: VBScript は Visual Basic の構文を真似てつくられた、Windows のスクリプト言語であり、Active Scripting のスクリプトエンジンという形態で実装されている。ランタイムとしてASPやWSHがあり、主な用途として、
title: 小林茂 (仏文学者)
text: ISPF (Interactive System Productivity Facility) は、IBM のメインフレームコンピュータのオペレーティングシステムMVS、OS/390、z/OS環境で使われるツールセットの1つである。1980年代に市販された SPFPC (SPF/PC, SPF/SourceEdit) などのマイクロコンピュータ用エディタの元にもなった、スクリーンエディタを含むユーザインタフェースである。
title: Systems Network Architecture
text: SNAは、コンピュータとその資源を結ぶ、完全なプロトコルスタックである。SNA はプロトコルの体系(仕様)であり、それ自身にはプログラム(製品)は含まない。SNA の実装については、様々な形のコミュニケーションパッケージが出ており、最も有名なものは、メインフレーム環境において SNAコミュニケーションを実現する VTAM である。
title: Python
text: Python(パイソン)はインタープリタ型の高水準汎用プログラミング言語である。グイド・ヴァン・ロッサムにより創り出され、1991年に最初にリリースされたPythonの設計哲学は、有意なホワイトスペース(オフサイドルール)の顕著な使用によってコードの可読性を重視している。その言語構成とオブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
title: SKILL (プログラミング言語)
text: SKILL(スキル) はLISP系のスクリプト言語であり、ケイデンス・デザイン・システムズ社製の多くのEDA製品 (Cadence Allegro、Cadence Virtuoso等)で使われる「PCell」を記述するための言語である。その始めは1990年のIEEEの論文での提案にある。
title: Curses
text: curses(カーシス、カーズィス)はUnix系システムでの端末制御ライブラリである。テキストユーザインタフェース (TUI) アプリケーションを作成するのに使われる。名称は“cursor optimization”に由来する。文字のみを表示する端末(例えばVT100)を表示に使うアプリケーションが画面を管理する機能を集めたライブラリである。
title: QBasic
text: QBasicはQuickBASICを基にしたBASIC系の言語の統合開発環境(IDE)、インタプリタ。IDE上で入力されたコードを中間コードに即座にコンパイルし、要求に応じて解釈実行するという特徴をもつ。少なくともPC/AT互換機の英語モードにおいてはDOSとMicrosoft Windowsのほぼ全てのバージョンで動作し、DOSBoxとDOSEMUを用いればLinuxとFreeBSDでも動作する。コードの即時評価や、コードの部分修正が可能なデバッガといった独自の機能を備え、10年以上にわたって最先端のIDEを提供していた。
title: Java仮想マシン
text: 最初のJava仮想マシンの実装 (JDK 1.0) はインタプリタ型であったため、動作速度が他のアプリケーションに比べて遅い場合があった。そのため、メソッドの実行直前 (Just in Time) にバイトコードをCPUのネイティブコードにコンパイルして実行する形式(JITコンパイラ)を、ボーランドや IBMなどがリリースした。サン・マイクロシステムズの実装もJDK 1.1からJITコンパイラを搭載した。
title: オープンソースソフトウェアの歴史
text: 1987年にPerl、1991年にPython、1995年にRubyがインタプリタのスクリプト言語としてリリースされた。それらのスクリプト言語はホビイストやハッカーの手軽なツール、HTTPサーバのCGIとして多用された
title: TypeScript
text: TypeScript はマイクロソフトによって開発され、メンテナンスされているフリーでオープンソースのプログラミング言語である。TypeScriptはJavaScriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセットとなっている。C#のリードアーキテクトであり、DelphiとTurbo Pascalの開発者でもあるアンダース・ヘルスバーグがTypeScriptの開発に関わっている。TypeScriptはクライアントサイド、あるいはサーバサイド (Node.js) で実行されるJavaScriptアプリケーションの開発に利用できる。
title: Mathematica
text: プログラミング言語としてのMathematicaは、項書き換えを基本として関数型と手続き型の両方をサポートするマルチパラダイム・プログラミング言語である。Mathematicaは、ウルフラムらが1979年頃に開発した Symbolic Manipulation Program を起源とし、プログラミング言語ALGOL・LISP・APL、および数式処理システムMacsymaの影響を受けている。
title: Smalltalk
text: Model View Controller(MVC)は Smalltalk から生まれた、制御(コントローラー)と情報(モデル)、そして情報の表現方法(ビュー)の3つを分離しクラスオブジェクトの再利用性を高め、実行時に情報と表現の組み合わせを変更できるようにした設計方針である。Smalltalk の世界でMVCは更に表現を担当するクラスに既定の制御を取り込む仕組みを持たせることで PluggableMVC へと発展した。
title: オープンソースソフトウェアの歴史
text: 1990年代までのソフトウェア開発はプログラミングをするエディタとコンパイルするターミナルのウィンドウを切り替えて開発をしていたが、それらを一つのウィンドウ(アプリケーション)にまとめて加えてデバッガ連動、入力補完、プログラム実行などの開発補助をする統合開発環境(IDE)が登場した。IBMは2001年11月にJava言語を対象としたIDE「Eclipse」をリリースした。Javaの隆盛と供に爆発的に利用者が増えたEclipseは管理、開発体制の見直しがなされ、2004年にIBMから独立した組織であるEclipse Foundationに譲渡され、Javaに限らずプラグインで任意のプログラミング言語を対象とするIDEとなった 。開発効率を上げる統合開発環境はソースコードを読み書きする開発者に受け入れられた。
title: ツイスター2008
text: Dylan(ディラン)は、プログラミング言語の一種。アップルコンピュータが次世代プログラミング言語を目指し、オブジェクト指向、関数型言語、動的言語、データ抽象化/隠蔽などを取り入れて開発した言語。名称の由来はDynamic Language(動的言語)から。
title: ECMAScript for XML
text: ECMAScript for XML(E4X)は、ECMAScript(ActionScript、DMDScript、JavaScript、JScript を含む)にネイティブのXMLサポートを追加するプログラミング言語拡張である。その目的は、DOMインタフェースの代替として、単純な構文でXML文書にアクセスできるインタフェースを提供することである。E4Xがリリースされるまで、XMLへのアクセスには常にオブジェクトレベルが関与していた。E4XではXMLを文字や整数と同様のプリミティブ型として扱う。そのため、アクセスが高速化され、サポートが容易になり、プログラムの構成要素(データ構造)としても扱いやすくなる。
title: アンドリュー・タネンバウム
text: Operating Systems: Design and Implementation では、オペレーティングシステム (OS) の設計と理論を説明し、OSの実装をMINIXを例としてそのソースコードを掲載して説明している。タネンバウムはMINIXの開発で中心的な役割を果たした。MINIXは、OSを学ぶ人向けの無料で利用できるOSである。Unix系OSであり、設計方式はマイクロカーネルである。
title: Linux
text: Linuxシステムのユーザインタフェース(シェルとも呼ばれる)は、コマンドラインインタフェース (CLI) とグラフィカルユーザインタフェース (GUI) のどちらか、またはハードウェアに搭載されているコントロール(これは組み込みシステムでよくみられる)である。デスクトップシステムではGUIが一般的だが、GUI環境でも端末エミュレータウインドウや仮想コンソールを通してCLIインタフェースを利用できる。Unixの標準的ツールを含むLinuxの低水準な構成要素のほとんどはCLIだけで使用できる。CLIは、自動化や繰り返し作業に適しており、非常にシンプルなプロセス間通信(パイプ)によるコマンドの連携もサポートしている。
title: パイプ (コンピュータ)
text: パイプラインの概念とバーティカルバーによる記法は、初期のUnixシェル開発に関わったダグラス・マキルロイが考案した。彼はプログラムの出力を別のプログラムの入力とするような処理が非常に多いことに気付き、パイプを考案するに至った。そのアイデアを1973年ケン・トンプソンがUNIXにパイプとして実装した。その後、MS-DOS、OS/2、Microsoft Windows、BeOSといったOSのコマンドラインシェルにほぼ同じ記法でパイプが採用されていった。
title: Io (プログラミング言語)
text: Io(イオあるいはアイオー)は純粋なオブジェクト指向プログラミング言語であり、Smalltalk、Self、Lua、LISP、Act1、NewtonScript(英語版)の影響を受けている。Self や NewtonScript のようなプロトタイプベースのオブジェクトモデルであり、オブジェクトとクラスを区別しない。Smalltalk のようにあらゆるものをオブジェクトとして扱い、動的型付けを行う。LISPのように文の概念がなく、制御フローは関数を使って実現される。Io はアクターによる並行性を実現しており、最近のプログラミング言語には珍しい特徴となっている。
title: OpenVMS
text: OpenVMSの特筆すべき機能の一つがCommon Language Environmentであり、これはプログラミング言語から独立して、スタックやレジスタの使用も含めた関数やサブルーチンの呼び出し方を定義する、厳格に定められた標準である。これにより、対象となる言語の実装の詳細を知ることなく、ある言語(例えばFORTRAN)で書かれたサブルーチンを他の言語(例えばC言語)から呼び出すことが可能である。OpenVMS自体は多種の異なる言語(BLISS、VAX Macro、Ada、PL/I、C、FORTRAN、BASICなど)によって実装されており、ほぼ全体がC言語によって実装されているUNIXなどのシステムとは対照的である。
title: WxWidgets
text: wxWidgetsとはクロスプラットフォームなウィジェット・ツールキットであり、C++で記述されているが、多くのプログラミング言語向けにバインディングが用意されており、Python、Perl、JavaScriptなどから使うことが出来る。 移植性が高くWindowsを初めmacOS、Linuxなど多くのオペレーティングシステム (OS) で動かすことが出来る。 また、単なるウィジェットだけでなく他のOSに移植しやすいように文字列操作やファイル管理、HTTPによる通信を行う機能も用意されている。 他の多くのウィジェット・ツールキットと違い各コンポーネントの描画をOSに行わせているため各々のOSに調和したコンポーネントを表示できる。 さらに、C++で記述されているため高速で、JavaのSwingのように事前にソフトをインストールしなくても利用できる。
title: IBus
text: IBus(アイバス、Intelligent Input Bus)はUnix系オペレーティングシステム (OS) におけるインプットメソッドフレームワークである。IBusのBusはバスのような構造を持つところから来ている。
title: Mops
text: Mops (Mike's object oriented programming system、モップス) とは、 Forth 言語をベースにした、Macintosh向けのオブジェクト指向開発環境。
title: DirectCompute
text: Microsoft DirectCompute (マイクロソフト・ダイレクトコンピュート) は、Microsoft Windows OS上で\"General-Purpose computing on Graphics Processing Unit\" (GPGPU) をサポートするためのアプリケーション・プログラミング・インターフェイス(API)の1つである。