27 関係: 型システム、並行計算、仮想機械、モジュール、ロブ・パイク、ブライアン・カーニハン、プログラミング言語、プロセス間通信、デニス・リッチー、ベル研究所、アントニー・ホーア、アプリケーションソフトウェア、インタプリタ、オペレーティングシステム、オープンソース、オブジェクトファイル、ガベージコレクション、コンパイラ、コンピュータ・アーキテクチャ、C言語、Communicating Sequential Processes、Go (プログラミング言語)、Inferno (オペレーティングシステム)、Pascal、Plan 9 from Bell Labs、Stackless Python、抽象データ型。
型システム
型システム(type system)とは、プログラミング言語において、その式などの部分が持つ値を、その種類(型(type)、データ型も参照)に沿って分類し、プログラムが正しく振る舞うこと、といった性質について保証する手法である。型システムは、型理論に基づいており、プログラミング言語の理論において最も確立された軽量形式手法である。.
新しい!!: Limboと型システム · 続きを見る »
並行計算
並行計算(へいこうけいさん、concurrent computing)とは、コンピュータプログラムにおいて複数の相互作用を及ぼす計算タスクの(同時)並行的実行を指す。.
新しい!!: Limboと並行計算 · 続きを見る »
仮想機械
仮想機械(かそうきかい、仮想マシン、バーチャルマシン、virtual machine、VM)とは、コンピュータの動作をエミュレートするソフトウェアやフレームワークである。また、エミュレートされた仮想のコンピュータそのものも仮想機械という。仮想機械によって、1つのコンピュータ上で複数のコンピュータやOSを動作させたり、別のアーキテクチャ用のソフトウェアを動作させることができる。.
新しい!!: Limboと仮想機械 · 続きを見る »
モジュール
モジュール(module)とは、工学などにおける設計上の概念で、システムを構成する要素となるもの。いくつかの部品的機能を集め、まとまりのある機能を持った部品のこと。モジュールに従っているものをモジュラー (modular)という。 入出力を絞り込み、標準化することで、システム開発を「すり合わせ」から「モジュールの組合わせ」にすることができる。.
新しい!!: Limboとモジュール · 続きを見る »
ロブ・パイク
バート・C・パイク(Robert C. Pike、1956年 - )は、ソフトウェア工学者でありソフトウェア作家。ベル研究所でのUNIX開発、その後の Plan 9 と Inferno というオペレーティングシステムの開発で知られる。また、Limbo というプログラミング言語の作者でもある。また、UNIX用のグラフィカル端末 Blit の開発も行った。それ以前の1981年、彼は世界初のUNIX用ウィンドウシステムのコードも書いている。 長年に渡って、彼はテキストエディタを数々開発している。特によく知られているのは、sam と acme である。パイクはブライアン・カーニハンと共に『UNIXプログラミング環境』と『プログラミング作法』という2冊の著書を著している。また、ケン・トンプソンと共にUTF-8の開発を行った。パイクは細かいプログラムも開発しており、例えば電子メールの差出人の顔写真の画像を表示するプログラム vismon などがある。 パイクはコメディデュオ Penn and Teller のテクニカルアシスタントとして、テレビ番組『レイト・ショー・ウィズ・デイヴィッド・レターマン』に出演したことがある。パイクはジョークとして、1980年のオリンピック(モスクワオリンピック)ので銀メダルを取ったと言っていた。実際には、パイクはカナダ国籍であり、カナダはモスクワオリンピックをボイコットした。 現在は Google に勤務しており、とプログラミング言語Goの開発に関わっている。.
新しい!!: Limboとロブ・パイク · 続きを見る »
ブライアン・カーニハン
ブライアン・カーニハン (Brian Wilson Kernighan、1942年1月1日 -) は、ベル研究所に在籍していたカナダ出身の計算機科学者である。C言語やUNIXの開発者であるデニス・リッチー、ケン・トンプソンと共に、C言語およびUNIXに対する多くの研究開発結果による貢献で知られている。 デニス・リッチーと共著の『プログラミング言語C』(通称:K&R)は、C言語の規格化が成されるまで事実上の規格書的な扱いを受けていた。現在でも古典的な教科書の一つである。 現在は、計算機科学部教授としてプリンストン大学に在籍している。.
新しい!!: Limboとブライアン・カーニハン · 続きを見る »
プログラミング言語
プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.
新しい!!: Limboとプログラミング言語 · 続きを見る »
プロセス間通信
プロセス間通信(IPC、interprocess communication)はコンピュータの動作において複数のプロセス間(の複数のスレッド間)でデータをやりとりするための仕組み。通信するプロセスは同一コンピュータ上にある場合と、ネットワークで接続された別のコンピュータ上にある場合がある。そのようなローカル内対リモート間といったような分類以外にも多くの観点から分類でき、また、スレッド間の通信の帯域幅とレイテンシは様々であり、やりとりされるデータの種類も様々である。メッセージパッシング、同期、共有メモリ、RPCなどといったメカニズムやプリミティブがある。 プロセス間通信の目的・理由には以下のようなものがある。.
新しい!!: Limboとプロセス間通信 · 続きを見る »
デニス・リッチー
デニス・マカリスター・リッチー(Dennis MacAlistair Ritchie、1941年9月9日 - 2011年10月12日)は、アメリカ合衆国の計算機科学者。 コンピュータ言語のC言語を開発し、ケン・トンプソンと共にオペレーティングシステム(OS)であるUNIX、Multicsなどの開発者として知られる。2007年に引退するまで、ルーセント・テクノロジーズのシステムソフトウェア研究部門を指揮していた。技術的なコミュニティの中では、彼を指して "dmr"(ベル研究所におけるアカウント名)と呼ぶことがある。.
新しい!!: Limboとデニス・リッチー · 続きを見る »
ベル研究所
ベル研究所(ベルけんきゅうじょ、Bell Laboratories)はもともとBell System社の研究開発部門として設立された研究所であり、現在はノキアの子会社である。「ベル電話研究所」、略して「ベル研」とも。.
新しい!!: Limboとベル研究所 · 続きを見る »
アントニー・ホーア
チャールズ・アントニー・リチャード・ホーア(Charles Antony Richard Hoare、1934年1月11日 - )はイギリスの計算機科学者。通称はトニー・ホーア(Tony Hoare)またはC・A・R・ホーア。 クイックソート(一般的な場合には最も性能の良い実装ができるとされるソートアルゴリズム)の考案でも知られるが、専門的な業績としては、ホーア論理や、並行プロセスを形式記述するCommunicating Sequential Processes(CSP)などがある。CSPはプログラミング言語Occamに示唆を与えた。.
新しい!!: Limboとアントニー・ホーア · 続きを見る »
アプリケーションソフトウェア
アプリケーションスイートである。 アプリケーションソフトウェア(application software, 応用ソフトウェア)は、アプリケーション(応用)プログラムともいい、ワープロや表計算などといった、コンピュータを「応用」する目的に応じた、コンピュータ・プログラムである。なお、それに対してシステムプログラムは、アプリケーションプログラムに対して処理実行のための計算機資源を抽象化して提供する、などのインフラとしての役割のプログラムであり、ユーザーが要求する情報処理を直接実行するものではなく、ユーザーが普段は意識することはない裏方的な存在がシステムプログラムである。.
新しい!!: Limboとアプリケーションソフトウェア · 続きを見る »
インタプリタ
インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。.
新しい!!: Limboとインタプリタ · 続きを見る »
オペレーティングシステム
ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.
新しい!!: Limboとオペレーティングシステム · 続きを見る »
オープンソース
ープンソース (open source) とは、言葉通りのソースコードへのアクセスが開かれている(ソースコードが公開されている)ことを意味するのではなく、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないソフトウェア開発の手法を意味する。オープンソース・イニシアティブ は、「オープンソース」と名乗るための要件として「オープンソースの定義」を掲げている。.
新しい!!: Limboとオープンソース · 続きを見る »
オブジェクトファイル
ブジェクトファイル またはオブジェクトコード とは、コンパイラがソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイルである。中身は、機械語バイナリとそれに付随するシンボルテーブルやリロケーションテーブルといった付加情報であり、さらにデバッグ支援情報や近年はリンク時最適化等のための高度な情報が含まれる場合もある。オブジェクトファイル群をリンクすることによって最終的な実行ファイルやライブラリが作成される。オブジェクトファイルのほとんどは機械語である(コンピュータのCPUが直接実行できるコード)。オブジェクトファイルフォーマットはコンパイラやアセンブラが生成するオブジェクトファイルのファイルフォーマットである。.
新しい!!: Limboとオブジェクトファイル · 続きを見る »
ガベージコレクション
ベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。 メモリの断片化を解消する機能はコンパクションと呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 参照カウント方式のガベージコレクションは通常煩雑なコーディングを必要とするが、それを必要なく実装したライブラリとしがある。.
新しい!!: Limboとガベージコレクション · 続きを見る »
コンパイラ
ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.
新しい!!: Limboとコンパイラ · 続きを見る »
コンピュータ・アーキテクチャ
ンピュータ・アーキテクチャ(computer architecture)は、コンピュータ(特にハードウェア)における基本設計や設計思想などを意味する。アーキテクチャ(建築)には、単に「建築物」以外に、設計や様式という意味があるが、それから転じて、コンピュータ分野においても使われるようになった。「設計思想」などと意訳されることもある。技術者や研究者の用語としては(企業ごとの用語の違いにもよるが)「方式」という語が使われることもある。 1964年のSystem/360で最初に使われた用語で、その際の意味としては、入出力インタフェースを含むコンピュータシステムのハードウェア全体(周辺機器自体は含まない)の、ユーザー(プログラマ、OSを設計するプログラマも含む)から見たインタフェースの定義であり、具体的には使用できるレジスタの構成、命令セット、入出力(チャネルコントロールワード)などであり、実装は含まない。このアーキテクチャが同一のコンピュータ間や、上位互換のアーキテクチャを持つコンピュータへの移行や、上位互換の周辺機器への移行などは、ソフトウェアの互換性が原則として保証される。またハードウェアの内部設計や実装は、定義されたアーキテクチャを守る限り、技術の進歩に応じて自由に更新できる。この結果、コンピュータ・ファミリー(シリーズ)が形成可能となる。現在で言えばレイヤー定義であり仮想化の一種でもある。 また、システムアーキテクチャ、エンタープライズアーキテクチャ、ソフトウェアアーキテクチャ、ARMアーキテクチャなどの用語も増えている。.
新しい!!: Limboとコンピュータ・アーキテクチャ · 続きを見る »
C言語
C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.
Communicating Sequential Processes
Communicating Sequential Processes(CSP)とは、並行性に関するプロセス計算の理論のひとつである.
新しい!!: LimboとCommunicating Sequential Processes · 続きを見る »
Go (プログラミング言語)
Goはプログラミング言語のひとつ。Googleによって開発されており、設計にロブ・パイク、ケン・トンプソンらが関わっている。 主な特徴として、軽量スレッディングのための機能、Pythonのような動的型付け言語のようなプログラミングの容易性、などがある。Go処理系としてはコンパイラのみが開発されている。マスコット・キャラクターはGopher(ホリネズミ)。 発表当初はLinuxとMac OS Xのみしかサポートしていなかったが、2012年3月にリリースされたバージョン1.0からはWindowsもサポートされている。2014年12月にリリースされたバージョン1.4からAndroidをサポートし、2015年8月19日にリリースされたバージョン1.5からiOSをサポートしている。また、2011年5月10日に公開された Google App Engine 1.5.0 でも、Go言語がサポートされている。.
新しい!!: LimboとGo (プログラミング言語) · 続きを見る »
Inferno (オペレーティングシステム)
Infernoは、分散システムのためのオペレーティングシステム (OS)。Plan 9 from Bell Labs (Plan 9) を開発した経験を元に、その後のベル研究所でのOS、言語、オンザフライ・コンパイラ、グラフィックス、セキュリティ、ネットワーク、移植性などの研究成果を盛り込んでいる。 Infernoアプリケーションは様々なハードウェア、ネットワーク、環境に移植可能である。任意のマシンに実装可能な仮想機械 (Dis) がベースになっている。また、型安全な言語Limboが移植性の高いバイトコードを生成する。さらに、ハードウェア上で直接動作する場合でも、他のOS上でアプリケーションとして動作する場合でも同じインターフェースを提供する仮想オペレーティングシステムを含む。 リソースアクセスは、ローカルでもリモートでもStyxという通信プロトコルを使う。例えばアプリケーションが標準的なファイル操作(オープン、リード、ライト、クローズ)を行う場合もその通信プロトコルを経由する。第4版 (Fourth edition) では、StyxはPlan 9の新しいバージョンでの9Pプロトコル (9P2000) と全く同じである。 OSの名称、関連プログラムの名称、さらには Vita Nuova Holdings という企業名は、ダンテ・アリギエーリの作品、特に『神曲』に由来している。.
新しい!!: LimboとInferno (オペレーティングシステム) · 続きを見る »
Pascal
Pascal(パスカル)は、ニクラウス・ヴィルトの設計(デザイン)によるコンピュータ・プログラミング言語である。ALGOL(直接的にはその一派生である、ヴィルトが関与したALGOL W)などの影響があるが、個人の設計であることに由来する簡素だがよく整った言語仕様(構文と意味)を持つ。用途の中に教育を意識しており、構造化された制御構造など、その当時「良きプログラミングの慣習」と考えられていたことの影響もある。一方で批判者からは、あくまでも教育用に過ぎない言語だ、といったような評もあることにはあったが、PascalコンパイラをPascalで書ける(いわゆる言語処理系のブートストラップ)ことをはじめ、Pascalで書かれた#実用プログラム例は多くある。名前は、哲学者・数学者・科学者で、機械式計算機を製作するなど技術者でもあったブレーズ・パスカルにあやかったものである。.
新しい!!: LimboとPascal · 続きを見る »
Plan 9 from Bell Labs
(通称 )は、主に研究用に使われている分散オペレーティングシステム。ベル研究所の で1980年代中ごろから2002年まで、UNIXの研究上の後継として開発された。Plan 9 は、ネットワークやユーザインタフェースまで含めたあらゆるシステムインタフェースを、個別のインタフェースではなくファイルシステムを通して統一的に表現することを特徴とする。Plan 9 は9Pプロトコルを使い、ユーザーにワークステーション毎に独立した作業環境を提供することを目指している。現在もベル研究所とPlan 9コミュニティによって活発に開発がつづいている。 Plan 9 は、UNIXの流れを汲むオペレーティングシステム (OS) の一種であり、開発に当たってUNIXの設計の問題点を改善することを念頭に置かれている。.
新しい!!: LimboとPlan 9 from Bell Labs · 続きを見る »
Stackless Python
Stackless Python(スタックレス・パイソン)ないしは Stackless は Python プログラミング言語の実験的な実装系であり、自身のスタックとしてC言語のコールスタックに依存しないことから命名されている。 Stackless Python は ジェネレータ、マイクロスレッド、コルーチンをサポートしている。 ソースコードに多数の変更が必要なため、Stackless Python は既存の Python がインストールされた環境にエクステンションやライブラリとしてインストールすることはできない。それ自体が完全な Python の配布系である。Stackless の機能の大部分は、Python のセルフホスティングインタプリタでありJIT コンパイラでもある PyPy でも実装されている。 Stackless は大規模マルチプレイヤーオンラインゲームである EVE Online の実装において並行性を実現するため、また Civilization IV や IronPort 社の電子メールプラットフォームになどで広い範囲にわたって使用されている。Second Life も使用し始めている。 Stackless の使用例や、Twistedフレームワーク、PyQt, Networking との統合方法を含む新しいプロジェクトのページが作成され、 という名前で Google Projects でホストされている。プロジェクトには wiki とリポジトリがあり、コミュニティが を通じて協力できる。.
新しい!!: LimboとStackless Python · 続きを見る »
抽象データ型
抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.
新しい!!: Limboと抽象データ型 · 続きを見る »