ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

LISP

索引 LISP

LISPは、プログラミング言語である。 によって記述される。-->前置記法などが特徴である。 1958年にはじめて設計されたLISPは、現在広範囲に使用されている高水準プログラミング言語の中でもFORTRANに次いで2番目に古い。ただし、FORTRANと同様に、現在のLISPは初期のものから非常に大きく変化している。 これまでに多数の方言が存在してきたが、今日最も広く知られるLISP方言は、Common LispとSchemeである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータープログラムのための実用的かつ数学的な表記法として作られた。そして、すぐに人工知能研究に好まれるプログラミング言語になった。最初期のプログラミング言語として、LISPは計算機科学にて、木構造、ガベージコレクション、動的型付け、条件分岐、高階関数、再帰、セルフホスティング、コンパイラを含む多くのアイディアを切り開いた。 LISPの名前は、「list processor」に由来している。リストはLISPの主要なデータ構造であり、LISPソースコードはそれ自体がリストからできている。その結果、LISPプログラムはソースコードをデータとして操作することができ、プログラマーは、マクロ・システムで新しい構文やLISP埋め込みの新しいDSLを作成できる。 コードとデータの互換性は、LISPにそのすぐに認識できる構文を与える。すべてのプログラム・コードはS式または入れ子のリストとして書かれる。関数呼び出しまたは構文は先頭が関数または演算子の名前で、その続きが引数であるリストとして書かれる。具体的には、3つの引数を取る関数fは、(f arg1 arg2 arg3)として呼び出される。.

124 関係: AmigaAssociation for Computing MachineryAutoCAD多重ディスパッチ変換変数 (プログラミング)実装中置記法人工知能式 (プログラミング)マルチパラダイムプログラミング言語マクロ (コンピュータ用語)マサチューセッツ工科大学チューリングマシンポーランド記法メインフレームメタプログラミングラムダ計算リフレクション (情報工学)プログラミング言語プログラム (コンピュータ)パロアルト研究所パーソナルコンピュータテキストエディタデータ構造ドメイン固有言語アロンゾ・チャーチアップル (企業)インタプリタオブジェクト指向プログラミングカリフォルニア大学バークレー校ガベージコレクションケイデンス・デザイン・システムズコンパイラコンピュータシェーキージョン・マッカーシーセルフホスティングゼロックスソースコードサブルーチン再帰再帰的定義入力動的型付け動的スコープ値 (情報工学)BBNテクノロジーズCLIPSClojure...CLUCommon LispCommon Lisp Object System第一級オブジェクト米国国家規格協会純LISP継承 (プログラミング)DylanEmacs Lisp階乗Eval遅延評価静的スコープ設計計算計算機プログラムの構造と解釈計算機科学評価戦略高階関数高水準言語論文関数関数型言語連結リストForthFORTRANGNU EmacsHaskellHYIBMIBM 704If文Information Processing LanguageInterlispIo (プログラミング言語)JavaScriptJulia (プログラミング言語)LISPマシンLOGOLuaMacintoshMaclispMacsymaMathematicaMaximaMicrosoft WindowsML (プログラミング言語)MOS 6502PerlPlannerProject MACPythonRacketREBOLREDUCE (数式処理システム)R言語RPL (プログラミング言語)RubyS式SchemeSECDマシンSHRDLUSKILL (プログラミング言語)SmalltalkTcl/TkXyzzy束縛 (情報工学)機械語木構造 (データ構造)末尾再帰方言 (プログラミング言語)文 (プログラミング)手続き型プログラミング1958年 インデックスを展開 (74 もっと) »

Amiga

名機Amiga 500と、そのデスクトップ環境であるWorkbench 1.3(1987年) Amiga(アミガもしくはアミーガ)は、1985年にコモドールより発売されたパーソナルコンピューターである。.

新しい!!: LISPとAmiga · 続きを見る »

Association for Computing Machinery

Association for Computing Machinery (ACM) は、ニューヨークに本部のあるコンピュータ科学分野の国際学会。1947年設立。IEEEとともに、この分野で最も影響力の強い学会であり、IEEEがその名と由来や歴史からエレクトロニクスや通信分野の工学に強いのに対し、数学的な理論計算機科学のような分野もカバーする。日本語に訳して「計算機械学会」とされることもあるが、こんにちこの訳語が用いられることはほとんどなく、通常は単に"ACM"という略称で呼ばれるのがもっぱらである。ACMの「A」は Association (学会、団体) の頭文字であるが、アメリカ数学会 (AMS) と混同して「米国計算機学会」と誤訳されることがある。 数多くの国際会議を開催しており、人目を惹くデモ映像のSIGGRAPHやSIGMODなどはよく知られている。他の多くの学会と同様にすぐれた業績などへの表彰もおこなっているが、チューリング賞は、特にこの分野の最高の賞とみなされており、物理や化学といった分野におけるノーベル賞に匹敵するものと扱われることもある(他の賞についても時折「~のノーベル賞」といったような表現が使われることがあるが、この分野の全てを対象とした世界トップクラスの賞という位置づけにあるのはチューリング賞をおいて他にない)。.

新しい!!: LISPとAssociation for Computing Machinery · 続きを見る »

AutoCAD

AutoCAD(オートキャド)は、オートデスク株式会社が開発する汎用のCADソフトウェア。1982年、最初のバージョンである1.0が発売された。建築・土木・機械分野をはじめとして、汎用CADとして多く利用されている。.

新しい!!: LISPとAutoCAD · 続きを見る »

多重ディスパッチ

多重ディスパッチ(Multiple dispatch)またはマルチメソッド(Multimethods)は、多重定義された関数やメソッドなどについて、そこで呼び出されるべき1つの定義を選出し実行する(ディスパッチする)際に、2個以上の複数の引数が関与してどれかひとつを選ぶこと(特殊化)がおこなわれるものである。.

新しい!!: LISPと多重ディスパッチ · 続きを見る »

変換

変換(へんかん).

新しい!!: LISPと変換 · 続きを見る »

変数 (プログラミング)

プログラミングにおいて、変数(へんすう、variable)とは、プログラムのソースコードにおいて、扱われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたものである。 一人一人の人間が異なる名前によって区別されるように、一つ一つの変数も名前によって区別される。これにより、複数のデータを容易に識別することができる。変数名は一般に(字句的には)識別子である、ないし、変数の識別子のことを変数名という。一般に、変数が表しているデータをその変数の値(あたい)という。.

新しい!!: LISPと変数 (プログラミング) · 続きを見る »

実装

実装(じっそう、implementation)とは、何らかの機能(や仕様)を実現するための(具体的な)装備や方法のこと。.

新しい!!: LISPと実装 · 続きを見る »

中置記法

中置記法(ちゅうちきほう、infix notation)とは、数式やプログラムを記述する方法(記法)の一種。演算子を操作対象の中間に記述することから、このように呼ばれる。 その他の記法として、演算子を操作対象の前(左)に記述する前置記法(ポーランド記法)、演算子を操作対象の後(右)に記述する後置記法(逆ポーランド記法)がある。 四則演算など初歩的な算術においては、もっぱら中置記法が多用されている。.

新しい!!: LISPと中置記法 · 続きを見る »

人工知能

250px 人工知能(じんこうちのう、artificial intelligence、AI)とは、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」を指す。.

新しい!!: LISPと人工知能 · 続きを見る »

式 (プログラミング)

式(しき、expression)とは、プログラミングにおいて、言語によって定められた優先順位や結びつきの規定に則って評価される値、変数、演算子、関数の組み合わせである。数学における式と同様、式は評価された値を持つ。 言語によっては式が副作用を持つこともあり、参照透過性がない場合もある。.

新しい!!: LISPと式 (プログラミング) · 続きを見る »

マルチパラダイムプログラミング言語

マルチパラダイムプログラミング言語 (マルチパラダイムプログラミングげんご、multiparadigm programming language)は、複数のプログラミングパラダイムに対応するプログラミング言語の総称である。「1つのプログラムは複数のプログラミングパラダイムを使う」とビャーネ・ストロヴストルップは述べている。マルチパラダイムプログラミング言語の設計目標は、問題解決に当たって最良の道具になることである。たとえばOzでは、論理型、関数型、オブジェクト指向、データフローコンカレントなど、多数のパラダイムを内包している。Ozは10年かけて従来のプログラミングパラダイムが調和するよう設計されたのである。.

新しい!!: LISPとマルチパラダイムプログラミング言語 · 続きを見る »

マクロ (コンピュータ用語)

マクロ (macro) は「大きい」「巨大な」といったような意味の語であるが、コンピュータ関係では、アプリケーションソフトウェアなどの操作などといった、プログラミング言語と比較して粒度が大きい操作をまとめて自動化したりする機能を指して良く使われる。マクロを記述するコンピュータ言語をマクロ言語と言う(言語の無いマクロ機能もある)。また、テキスト等の変換を記述する変換言語もマクロと呼ばれる。 この記事と、マクロ言語の記事は、それぞれに書くべき内容と書かれている内容が混乱している。また以下の内容のいくつかは変換言語についてのものである。.

新しい!!: LISPとマクロ (コンピュータ用語) · 続きを見る »

マサチューセッツ工科大学

マサチューセッツ工科大学(英語: Massachusetts Institute of Technology)は、アメリカ合衆国マサチューセッツ州ケンブリッジに本部を置く私立工科大学である。1865年に設置された。通称はMIT(エム・アイ・ティー。「ミット」は誤用で主に日本、欧州の極めて一部で用いられる)。 全米屈指のエリート名門校の1つとされ、ノーベル賞受賞者を多数(2014年までの間に1年以上在籍しMITが公式発表したノーベル賞受賞者は81名で、この数はハーバード大学の公式発表受賞者48名を上回る)輩出している。最も古く権威ある世界大学評価機関の英国Quacquarelli Symonds(QS)による世界大学ランキングでは、2012年以来2017年まで、ハーバード大学及びケンブリッジ大学を抑えて6年連続で世界第一位である。 同じくケンブリッジ市にあるハーバード大学とはライバル校であるが、学生達がそれぞれの学校の授業を卒業単位に組み込める単位互換制度(Cross-registration system)が確立されている。このため、ケンブリッジ市は「世界最高の学びのテーマパーク」とさえも称されている。物理学や生物学などの共同研究組織を立ち上げるなど、ハーバード大学との共同研究も盛んである。 MITはランドグラント大学でもある。1865年から1900年の間に約19万4千ドル(これは2008年時点の生活水準でいうところの380万ドルに相当)のグラントを得、また同時期にマサチューセッツ州から更なる約36万ドル(2008年時点の生活水準で換算して700万ドルに相当)の資金を獲得しているD.

新しい!!: LISPとマサチューセッツ工科大学 · 続きを見る »

チューリングマシン

チューリングマシン (Turing Machine) は計算模型のひとつで、計算機を数学的に議論するための単純化・理想化された仮想機械である。.

新しい!!: LISPとチューリングマシン · 続きを見る »

ポーランド記法

ポーランド記法(ポーランドきほう、Polish Notation)とは、数式やプログラムを記述する方法(記法)の一種。演算子(オペレータ)を被演算子(オペランド)の前(左)に記述することから、前置記法(ぜんちきほう、prefix notation)とも言う。 その他の記法として、演算子を被演算子の中間に記述する中置記法、後(右)に記述する後置記法(逆ポーランド記法)がある。 名称の由来は、ポーランド人の論理学者ヤン・ウカシェヴィチ (Jan Łukasiewicz) が考案したことによる。.

新しい!!: LISPとポーランド記法 · 続きを見る »

メインフレーム

IBM 704 メインフレーム メインフレーム(mainframe)は、主に企業など巨大な組織の基幹業務用などに使用される、大型コンピュータを指す用語。汎用コンピュータ、汎用機、汎用大型コンピュータ、大型汎用コンピュータ、ホストコンピュータ、大型汎用計算機 などとも呼ばれる。対比語は時代にもより専用機、分散コンピュータ(オープン系システム)など。.

新しい!!: LISPとメインフレーム · 続きを見る »

メタプログラミング

メタプログラミング (metaprogramming) とはプログラミング技法の一種で、ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法、またその高位ロジックを定義する方法のこと。主に対象言語に埋め込まれたマクロ言語によって行われる。.

新しい!!: LISPとメタプログラミング · 続きを見る »

ラムダ計算

ラムダ計算(ラムダけいさん、lambda calculus)は、計算模型のひとつで、計算の実行を関数への引数の評価(evaluation)と適用(application)としてモデル化・抽象化した計算体系である。ラムダ算法とも言う。関数を表現する式に文字ラムダ (λ) を使うという慣習からその名がある。アロンゾ・チャーチとスティーヴン・コール・クリーネによって1930年代に考案された。1936年にチャーチはラムダ計算を用いて一階述語論理の決定可能性問題を(否定的に)解いた。ラムダ計算は「計算可能な関数」とはなにかを定義するために用いられることもある。計算の意味論や型理論など、計算機科学のいろいろなところで使われており、特にLISP、ML、Haskellといった関数型プログラミング言語の理論的基盤として、その誕生に大きな役割を果たした。 ラムダ計算は1つの変換規則(変数置換)と1つの関数定義規則のみを持つ、最小の(ユニバーサルな)プログラミング言語であるということもできる。ここでいう「ユニバーサルな」とは、全ての計算可能な関数が表現でき正しく評価されるという意味である。これは、ラムダ計算がチューリングマシンと等価な数理モデルであることを意味している。チューリングマシンがハードウェア的なモデル化であるのに対し、ラムダ計算はよりソフトウェア的なアプローチをとっている。 この記事ではチャーチが提唱した元来のいわゆる「型無しラムダ計算」について述べている。その後これを元にして「型付きラムダ計算」という体系も提唱されている。.

新しい!!: LISPとラムダ計算 · 続きを見る »

リフレクション (情報工学)

情報工学においてリフレクション (reflection) とは、プログラムの実行過程でプログラム自身の構造を読み取ったり書き換えたりする技術のことを指す。.

新しい!!: LISPとリフレクション (情報工学) · 続きを見る »

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: LISPとプログラミング言語 · 続きを見る »

プログラム (コンピュータ)

ンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。.

新しい!!: LISPとプログラム (コンピュータ) · 続きを見る »

パロアルト研究所

正面玄関 パロアルト研究所(パロアルトけんきゅうじょ、、PARC)は、アメリカ合衆国のカリフォルニア州パロアルトにある研究開発企業である。.

新しい!!: LISPとパロアルト研究所 · 続きを見る »

パーソナルコンピュータ

パーソナルコンピュータ(personal computer)とは、個人によって占有されて使用されるコンピュータのことである。 略称はパソコン日本独自の略語である。(著書『インターネットの秘密』より)またはPC(ピーシー)ただし「PC」という略称は、特にPC/AT互換機を指す場合もある。「Mac対PC」のような用法。。.

新しい!!: LISPとパーソナルコンピュータ · 続きを見る »

テキストエディタ

テキストエディタ(text editor)とはコンピュータで文字情報(テキスト)のみのファイル、すなわちテキストファイルを作成、編集、保存するためのソフトウェア(プログラム)である。一般的に、文字情報の入力、削除、コピー、貼り付け、検索、置換、整形などの機能を備えている。Windowsのメモ帳や、macOSのテキストエディット、UNIXのvi、Emacsなど、多くのオペレーティングシステム (OS) やデスクトップ環境に最初から装備されている。.

新しい!!: LISPとテキストエディタ · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: LISPとデータ構造 · 続きを見る »

ドメイン固有言語

ドメイン固有言語(ドメインこゆうげんご、domain-specific language、DSL)とは、特定のタスク向けに設計されたコンピュータ言語である。 DSL は一種類のタスクをうまく実行することに集中したものであり、古くから存在した。何らかのプログラミング言語それ自体の構文と処理系を利用する internal DSL(あるいは embedded DSL)と、独立した構文と処理系を持つ external DSL に大別されるが、そのいずれにしても近年の、自由度と機能が高いプログラミング言語により手軽に扱えるようになったことから広まっている。ドメイン固有モデリングの支持者によれば、ドメイン固有モデリングの発達と共にDSLという用語も広く知られるようになってきた、とされる。実際にはドメイン固有言語はモデリングとは特別な関係が何もあるわけでもなく(ドメイン固有モデリングのためのドメイン固有言語、といったものはあるが)、モデリング以外にもあらゆる分野のための言語がある。 例えば、ハードウェア記述言語のVerilog HDLやVHDL、表計算ソフトのマクロ、データベースへの問い合わせ言語(SQLなど)、文脈自由文法を記述するBNFや正規文法を記述する正規表現、図を作成する言語を構築する 、音響や音楽の合成用のCsound、グラフ(ネットワーク)描画システムGraphvizのDOT言語、依存関係解決用のmakeなどがある。.

新しい!!: LISPとドメイン固有言語 · 続きを見る »

アロンゾ・チャーチ

アロンゾ・チャーチ(Alonzo Church, 1903年6月14日 - 1995年8月11日)はアメリカの論理学者、数学者。ラムダ計算の創案者、「チャーチ=チューリングのテーゼ」の提唱者として知られる。.

新しい!!: LISPとアロンゾ・チャーチ · 続きを見る »

アップル (企業)

アップル()は、アメリカ合衆国カリフォルニア州に本社を置く、インターネット関連製品・デジタル家庭電化製品および同製品に関連するソフトウェア製品を開発・販売する多国籍企業である。2007年1月9日に、アップルコンピュータ (Apple Computer, Inc.) から改称した。.

新しい!!: LISPとアップル (企業) · 続きを見る »

インタプリタ

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。.

新しい!!: LISPとインタプリタ · 続きを見る »

オブジェクト指向プログラミング

ブジェクト指向プログラミング(オブジェクトしこうプログラミング、)は、コンピュータ・プログラミングのパラダイムのひとつで、オブジェクト指向の概念や手法を取り入れたものである。プログラムを、データとその振舞が結び付けられたオブジェクトの集まりとして構成する、などといった特徴がある。このパラダイムを指向しているプログラミング言語がオブジェクト指向プログラミング言語である。.

新しい!!: LISPとオブジェクト指向プログラミング · 続きを見る »

カリフォルニア大学バークレー校

バークレー校はカリフォルニア大学 (University of California) の発祥地であり、10大学からなるカリフォルニア大学システム(UCシステム)の中で最も古い歴史を持つ。ハーバード大学など同国東部の名門私立大学群の集まりである「アイビーリーグ」に対し名門公立大学の集まりである「パブリック・アイビー」の一校である。アメリカの公立大学ランキングでは長期間にわたり1位を維持している。同じ米国西海岸サンフランシスコ近郊のベイエリアに位置するスタンフォード大学とはスポーツ分野を中心に長年ライバル関係にある。 シリコンバレーにも近く位置しておりIT系やコンピューター分野でも多数の大企業から出資を受け研究、開発を行っている。UNIXシステムの一つ、BSDもこの大学の研究室で開発された。元サン・マイクロシステムズ技術者のビル・ジョイは、UCバークレーの学生時代に、viエディタと Cシェル (csh) など様々な基本的なツール・ユーティリティを設計、実装している。 第二次世界大戦当時バークレー校の物理学部教授だったロバート・オッペンハイマーやノーベル化学賞受賞者のグレン・シーボーグを筆頭にバークレー校の多くの学者が原子爆弾開発計画であるマンハッタン計画に携わり、米国における原子力爆弾および水素爆弾の開発に大きく貢献した。現在(2014年)まで70人以上のノーベル賞受賞者を輩出している。化学に関する研究が世界的に有名で、周期表の元素のうち6つが本校で発見された。 現在、アメリカの公立大学においてランキング第1位である。.

新しい!!: LISPとカリフォルニア大学バークレー校 · 続きを見る »

ガベージコレクション

ベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。 メモリの断片化を解消する機能はコンパクションと呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 参照カウント方式のガベージコレクションは通常煩雑なコーディングを必要とするが、それを必要なく実装したライブラリとしがある。.

新しい!!: LISPとガベージコレクション · 続きを見る »

ケイデンス・デザイン・システムズ

イデンス・デザイン・システムズ(Cadence Design Systems, Inc、)は、アメリカの半導体開発用ソフトウェア(EDA)企業である。1988年にSDAシステムズ社とECAD社が合併して誕生した。 2004年時点で、ケイデンスは、世界の電子設計技術およびエンジニアリング・サービスの最大のサプライヤーである。ケイデンス製品およびサービスは半導体デバイス、コンピューター・システム、ネットワークの設備、通信機器、家電および他のエレクトロニクス製品の設計作業を加速し管理するために使用されている。2003年には約4,850人の従業員で11億ドルの収入をあげた。ケイデンスは、カリフォルニア州サンノゼに本社があり世界中に営業所、デザインセンターおよび研究施設を持っている。株式はナスダックで取引されている。 EDA製品は、集積回路のシステムデザイン、論理合成およびレイアウトを含む設計プロセス全体を扱っている。さらに、集積回路パッケージングおよびPCB設計用ツールを含む、他の関連する製品を持っている。これらのソフトウェア製品は、様々なタイプの設計業務をターゲットにした「プラットフォーム」を構成している。.

新しい!!: LISPとケイデンス・デザイン・システムズ · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: LISPとコンパイラ · 続きを見る »

コンピュータ

ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.

新しい!!: LISPとコンピュータ · 続きを見る »

シェーキー

ェーキー()は、スタンフォード研究所が1966年から1972年にかけて研究開発したロボットである。移動能力のある世界初の汎用ロボットであり、自身の動作を推論することができた。当時、他のロボットが大きな仕事をするのに各段階をいちいち命令されなければならなかったのに対し、シェーキーは指令を分析し、基本的動作の列へと分解して実行できた。 その性質から、プロジェクトはロボット工学だけでなく、コンピュータビジョンや自然言語処理も含めた研究であった。そのため、論理的推論と物理的動作を統合した初のプロジェクトとなった。シェーキーはスタンフォード研究所(現SRIインターナショナル)の人工知能センターが開発した。 主な成果として、A*探索アルゴリズム、ハフ変換、法などがある。.

新しい!!: LISPとシェーキー · 続きを見る »

ジョン・マッカーシー

ョン・マッカーシー(John McCarthy, 1927年9月4日 - 2011年10月24日)は、アメリカ合衆国の計算機科学者で認知科学者。マービン・ミンスキーとならぶ初期の人工知能研究の第一人者。「人工知能; Artificial Intelligence」という用語は彼が1956年のダートマス会議のために1955年に出した提案書で初めて使用された。また、ALGOL言語の設計に触発され、LISPというプログラミング言語を開発し、タイムシェアリングの概念を一般化させた。.

新しい!!: LISPとジョン・マッカーシー · 続きを見る »

セルフホスティング

ルフホスティング(Self-hosting)は、ツール群やオペレーティングシステムの一部であるプログラムを使って、同じプログラムの新しいバージョンを作ることを指す。例えば、コンパイラでそのコンパイラ自身のソースコードをコンパイルすることなどを意味する。セルフホスティング・ソフトウェアはパーソナルコンピュータや大型のシステムでよく使われる。その他にセルフホスティングとなっている典型例としては、カーネル、アセンブラ、シェルなどがある。 全くソフトウェアが書かれていない新しいシステムの場合、ソフトウェアは別のセルフホスティングシステム上で開発され、ターゲットの新システムが読み取れる記憶装置に格納される。この形態の開発は、ターゲットシステムがある程度の信頼性を持って自身の開発に利用できるようになるまで続けられる。例えば、Linuxオペレーティングシステムの開発は、当初MINIXシステム上で行われた。新たなシステムで使うソフトウェアを、このような別のホストシステムを使わずに開発することは非常に珍しく、多くの場合不可能である。 プログラミング言語にも、セルフホスティング方式、すなわちコンパイラがその言語で書かれているものがある。新規のプログラミング言語の最初のコンパイラは、別の言語(場合によっては機械語)で書かれるか、ブートストラップ方式で開発される。セルフホスティング言語としては、LISP、Forth、Pascal、Delphi、C言語、Modula-2、Oberon、Smalltalk、OCaml、FreeBASIC、Haskell などがある。.

新しい!!: LISPとセルフホスティング · 続きを見る »

ゼロックス

ックス()は、印刷機器の製造販売を行うアメリカ合衆国の会社。フォーチュン500に入っている。プリンター、複合機、複写機、デジタル印刷機、および関連サービスを提供している。創業地はニューヨーク州ロチェスター。現在の本社はコネチカット州ノーウォーク(2007年10月、ニューヨーク市北東郊のコネチカット州スタンフォードから移転)だが、主要な施設は今もロチェスター周辺にある。ゼロックスはエリザベス2世とチャールズの御用達でもある。.

新しい!!: LISPとゼロックス · 続きを見る »

ソースコード

青で示されているのが有効なコードである。 ソースコード(source code)とは、コンピュータプログラミング言語で書かれた、コンピュータプログラムである文字列(テキストないしテキストファイル)のことである。.

新しい!!: LISPとソースコード · 続きを見る »

サブルーチン

ブルーチン(subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。 プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。.

新しい!!: LISPとサブルーチン · 続きを見る »

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: LISPと再帰 · 続きを見る »

再帰的定義

再帰的定義(Recursive Definition)は、再帰的な定義、すなわち、あるものを定義するにあたってそれ自身を定義に含むものを言う。無限後退を避けるため、定義に含まれる「それ自身」はよく定義されていなければならない。同義語として帰納的定義(Inductive Definition)がある。.

新しい!!: LISPと再帰的定義 · 続きを見る »

入力

入力(にゅうりょく)とは、コンピュータにおいては、装置に情報を与えること操作することで、電子回路や音響機器・映像機器においては、電子回路に電気信号または電気エネルギーを与えることである。 コンピュータの場合、例えば、キーボードからキーを打ち込んでコンピュータに文字を与えたりする。入力は人間対装置に限らず、装置対装置もあり得る。記憶装置から処理装置に情報を取り込むのがそれである。つまり、データの読み込みも入力であるといえる。 機械の場合、装置の原動機側を入力、負荷側を出力と呼ぶ。.

新しい!!: LISPと入力 · 続きを見る »

動的型付け

動的型付け(どうてきかたづけ、dynamic typing)とは、プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などそのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質のことである。 また、そのような性質の言語を、動的型付き言語(どうてきかたつきげんご、dynamically typed language)という。これに対し、型は実行前に決まる、というのが静的型付けである。型推論を利用していて、構文上は型の記述が省略可能な言語もあるが、そういった言語も静的型付けである(MLなど)。 静的型付けは、.

新しい!!: LISPと動的型付け · 続きを見る »

動的スコープ

動的スコープ、ダイナミックスコープ(dynamic scope)とは、プログラミング言語におけるスコープの一種である。 動的スコープは、実行時の親子関係の子側(呼び出された側)から親側(呼び出し側)のスコープを参照できるスコープである。このとき参照されるのは、親子関係を親側に辿り、より近いブロックにある変数である。以下の疑似コードでは: ブロックBから呼び出されたブロックAは、ブロックBで定義されている変数xを参照できる。一方、ブロックCから呼び出されたブロックAは、ブロックBで定義されている変数xは参照できない。 動的スコープは強力な反面、ミスを招きやすいため使用に注意が必要である。例えば以下の疑似コードでは呼び出し元ブロックによって変数の値が変化することを示している。 動的スコープの例としては古典LISPやEmacs Lisp、LOGO、Perl(「local」宣言した変数)、Bash(関数内で「local」宣言した変数)などがある。.

新しい!!: LISPと動的スコープ · 続きを見る »

値 (情報工学)

プログラミング言語における値(あたい)について説明する。値は、何らかの式を評価した結果である。式はデータ型を持ち、評価結果は内部的にはビット列になる。データ型が異なれば、同じビット列が異なる値(意味)を持つこともある。例えばあるビット列は整数、浮動小数点数または文字列として解釈されることがある。 いくつかの種類の値はほとんどのプログラミング言語で共通してサポートされている。様々な数値表現などがその例である。一方、あまり広くサポートされていないものもある。Pascalにある集合型などがその例である。.

新しい!!: LISPと値 (情報工学) · 続きを見る »

BBNテクノロジーズ

BBNテクノロジーズ(BBN Technologies)は、研究開発サービスを提供するハイテク企業である。かつては と称し、BBN社と呼ばれることも多い。所在地はアメリカ合衆国マサチューセッツ州ケンブリッジ。(ARPANETおよびインターネットを含む)パケット通信の開発で最もよく知られているが、民間軍事会社でもあり、国防高等研究計画局と関わりが深い。.

新しい!!: LISPとBBNテクノロジーズ · 続きを見る »

CLIPS

CLIPSとは、ソフトウェアの名称でありエキスパートシステムの一種である。C Language Integrated Production System(C言語統合型プロダクションシステム)の略。その文法と名称はチャールズ・フォーギーのOPS(Official Production System、もっとも公式(Official)なものでは全くない)からインスパイアされたものである。CLIPSの最初のバージョンは1984年にNASAのジョンソン宇宙センターで(既存のシステム ART*Inference の後継として)開発された。1990年代初めに国家予算問題で予算がつかなくなり、NASAは自力での開発をやめて一般の商用ソフトウェアを購入することになった。 CLIPSは高速で効率がよく無料であるため、最も広く使われているエキスパートシステム・ツールと言えるだろう。現在はパブリックドメインだが、それでもオリジナルの作者ゲーリー・ライリーがアップデートとサポートを続けている。 CLIPSはエキスパートシステムを記述するための完全なオブジェクト指向言語 COOL を含んでいる。C言語で書かれているが、そのインターフェイスはLISPに近い。拡張はC言語で行い、CLIPSをC言語から呼び出すこともできる。 他のエキスパートシステム用言語と同様、CLIPSは規則と事実を扱う。様々な事実によって規則が適用可能となり、適用可能となった規則はアサートされる。事実と規則は以下のように定義される。 CLIPS言語の後継としてJess(Javaで書き直されたルールベース部を持つが、その後異なる方向に成長)、、Haley Eclipse、FuzzyCLIPS (関連性の概念を導入した言語)などがある。 CLIPSに関する教科書として Expert Systems: Principles and Programming (ISBN 0-534-95053-1) がある。また、CLIPSはドキュメントを豊富に含んでいる。.

新しい!!: LISPとCLIPS · 続きを見る »

Clojure

Clojure (発音は, クロージャー)はプログラミング言語であり、LISP系の言語の方言の一つである。関数型プログラミングのプログラミングスタイルでのインタラクティブな開発を支援し、マルチスレッドプログラムの開発を容易化する汎用言語である。Clojure言語のプログラムはJava仮想マシンとMicrosoft.NET 共通言語ランタイムで動作する。Clojure言語は「データとしてのプログラムコード」 (英語:「code as data」) という思想で設計されており、洗練されたマクロ機構を持つ。.

新しい!!: LISPとClojure · 続きを見る »

CLU

CLU は、1974年から1975年にかけてMITのバーバラ・リスコフが学生らと共に開発したプログラミング言語である。抽象データ型のコンストラクタ(操作コードを含む)を備えており、オブジェクト指向プログラミングへの重要なステップとなった。しかし、それ以外のオブジェクト指向の機能は欠けているか不完全であり、継承もなく、文法が扱いにくいことが欠点であった。CLU と Alphard はどちらも完全なオブジェクト指向言語となる可能性を秘めていたが、実際にはそうならなかった。.

新しい!!: LISPとCLU · 続きを見る »

Common Lisp

Common Lisp(コモン・リスプ)は、コンピュータ・プログラミング言語 Lispの標準(の、ひとつ)であり、Lisp方言のひとつである。Common Lispの略称はCL(ごくまれにclispとも。なおCLISPという実装が実在するので混同回避のためあまり用いられない)。規格はANSIによる ANSI INCITS X3.226-1994 (R2004) 。仕様を指すこともあれば、実装を指すこともある。いくつかの、フリーソフトウェアの定義に合致したライセンスによりライセンスされている実装や、オープンソースの定義に合致したライセンスによりライセンスされている実装や、プロプライエタリなライセンスによりライセンスされている実装がある。 Lispの基本的な特徴の他、いくつかのプログラミングパラダイムのLispへの取り込みについて標準を提供しているという、マルチパラダイムプログラミング言語という面がある。.

新しい!!: LISPとCommon Lisp · 続きを見る »

Common Lisp Object System

Common Lisp Object System(コモン リスプ オブジェクトシステム、略称 CLOS)は、ANSI Common Lisp (CL) の一部をなすオブジェクト指向プログラミング機能であり、他の類似の言語(EuLisp や Emacs Lisp)にも導入されている。当初アドオンとして提案され、ANSIの標準に組み込まれた。CLOS は強い型付けをもつ(無名クラスは許されない)動的(実行時に定義を変更できる)オブジェクトシステムであり、C++やJavaのような静的なオブジェクト指向言語とは大きく異なる。初期のLISPオブジェクトシステム(MIT Flavors や Common LOOPS)に影響されているが、より汎用的である。 LISPにオブジェクト指向を導入することは簡単である。2ページ程度のコードがあれば実現できる(Graham, 1994)。一方、オブジェクト指向LISPを柔軟で拡張性に富んだものに設計するのはより困難であった。CLOS は完全なオブジェクトシステムであり、オブジェクト指向風に実装されている。CLOS のオブジェクト指向実装は CLOS Metaobject Protocol (MOP) と呼ばれ、これによってカスタマイズや拡張が可能となっている。 Standard Method Combination の概念図.

新しい!!: LISPとCommon Lisp Object System · 続きを見る »

第一級オブジェクト

一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。 この言葉は1960年代にChristopher Stracheyによって「functions as first-class citizens」という文脈で初めて使われた。 言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。.

新しい!!: LISPと第一級オブジェクト · 続きを見る »

米国国家規格協会

米国国家規格協会(べいこくこっかきかくきょうかい、)は、アメリカ合衆国の国内における工業分野の標準化組織であり、公の合意形成のためにさまざまな規格開発を担っている。 略称はANSI(アンシ、アンジ、アンシー)。訳は米国国家標準協会とも。また、元は旧称 (ASA) の訳だった米国規格協会・米国標準協会とも呼ばれる。本部はワシントンD.C.にあるが、事務局はニューヨークにある。 電子工業会 (EIA)、電気通信工業会 (TIA) などの国内規格作成団体による仕様を承認し、ANSI規格とする。 ANSI規格は、日本の日本工業規格 (JIS) に相当するとされる。ただし、政府(大臣)が制定する規格であるJISと違い、ANSI規格を制定するのは政府から独立した私的な非営利組織のANSIである。 国際標準化機構 (ISO) 設立メンバーであり、ISO、国際電気標準会議 (IEC)、国際認定フォーラム (IAF) にアメリカ代表として参加している。アメリカの国内規格機関ではあるが、ISO等の規格に先だって決まることも多く、ANSI規格がISO規格になることも多い。また、製造業における国際標準化団体としてIPC (エレクトロニクス)があるが、ANSIの標準開発組織として正式に認可されている。ASCIIの文字コード規格 (X.34) が、ISO646になるなどの例がある。.

新しい!!: LISPと米国国家規格協会 · 続きを見る »

純LISP

純LISP(じゅんりすぷ、pure LISP)とは、コンピュータ・プログラミング言語 LISP のうち、ごく基本的な要素だけからなる方言の一種。1960年のジョン・マッカーシーの論文「Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I」で示された。基本的な関数とプリミティブのみしかないが、その言語のインタプリタをその言語で記述できるという性質を持っている。なお、論文とほぼ同時期に発表された、最初の LISP の実装である LISP I は約90個の組み込み関数があり、純LISPではない。.

新しい!!: LISPと純LISP · 続きを見る »

継承 (プログラミング)

継承(けいしょう、inheritance:インヘリタンス)とはオブジェクト指向を構成する概念の一つである。あるオブジェクトが他のオブジェクトの特性を引き継ぐ場合、両者の間に「継承関係」があると言われる。 主にクラスベースのオブジェクト指向言語で、既存クラスの機能、構造を共有する新たなクラスを派生することができ(サブクラス化)、そのようなクラスは「親クラス(スーパークラス)を継承した」という。具体的には変数定義や操作(メソッド)などが引き継がれる。またJavaのインタフェース継承のように機能セットの仕様のみを引き継ぐ場合もある。 一般的に、BがAを継承する場合、B is a A. (BはAの一種である)という意味的な関係(Is-a関係)が成り立つ。従って、同じふるまいを持つからと言って、意味的に無関係なクラス間に継承関係を持たせるのは適切でない場合が多い。 プロトタイプベースのオブジェクト指向言語(Self、NewtonScript等)のように「クラス」という概念を持たない場合でも、クローン元となるオブジェクトを指して「継承」と呼ぶ。 継承と類似の概念に「委譲」があるが、継承では一度定まった継承関係は通常変更されないのに対して、委譲対象は必要に応じて変更されうるものである。 Is-a関係を持つ継承とは階層が異なる概念として集約 (aggregation) とコンポジション集約 (composition) があるが、これはクラス間の関係がHas-aである包含関係であり、クラス間の関係は継承よりも疎である。.

新しい!!: LISPと継承 (プログラミング) · 続きを見る »

Dylan

Dylan(ディラン)は、プログラミング言語の一種。アップルコンピュータが次世代プログラミング言語を目指し、オブジェクト指向、関数型言語、動的言語、データ抽象化/隠蔽などを取り入れて開発した言語。名称の由来はDynamic Language(動的言語)から。 アップルコンピュータ社でLISP/CLOS等を担当していたチームが設計にあたり、そのためCLOSの影響を色濃く受け継いでいる。 当初「Ralph(ラルフ)」という開発コード名で呼ばれ、アップル・ニュートンに搭載する予定で開発されていたが、想定しているプログラミングの動的化や、それに付随するガベージコレクション機能等を実現する為には多大な処理能力が必要とされ、ニュートンに搭載する予定のチップでは実現できないことが解り、ニュートンにはNewtonScriptが搭載される事となり、Dylanは採用されなかった。 後に、開発者向けにApple Dylan Technology Release 1(テクノロジーリリース)として販売したが、アップルコンピュータの組織再編とともにプロジェクトは解散した。 Dylanは、汎用コンピュータ言語となるために、言語仕様の根幹の部分をStandard Dylan(標準Dylan)、アップルコンピュータが拡張した部分をApple Dylan Language Extensions(アップルディラン言語拡張)として分離していた。.

新しい!!: LISPとDylan · 続きを見る »

Emacs Lisp

Emacs Lispは、GNU EmacsとXEmacsテキストエディタ(この記事ではあわせてEmacsと呼ぶ)で使われているLispプログラミング言語の方言である。Emacs組込みの編集機能のうち、C言語で書かれた部分以外のほとんどを実装するのに使われている。また、利用者によるEmacsのカスタム化や拡張のために用いられる。Lisp処理系で、もっとも使われている言語である。 Emacs Lispは、UnixのBourne Shell、Python、Perl、scsh、GNU Guile などのようなスクリプト言語として使うこともでき、コマンド行や実行ファイルからも呼び出せる。バッファや移動コマンドのような編集機能は、Lispの機能を補いバッチ・モードで動作する。 Emacs Lispは、ときにElispと呼ばれることもある。ただし、この呼び方は同名の無関係な古いLisp方言と混同されるおそれがある。機能でいうと、Common Lispの影響も後にみえるが、Maclisp方言と強い関係がある 。プログラミング・メソッドとして、手続き指向プログラミングと関数的プログラミングに対応している。関数をデータとして扱えるなどの強力な機能のため、(TECOを拡張言語としていたオリジナルの) Emacsの書換えにあたり、リチャード・ストールマンは拡張言語としてLispを選んだ。ストールマンがGosling EmacsをGNU Emacsへ書き換えていたとき、Common Lisp とは違ってSchemeは既に存在した。しかし、当時のワークステーションの性能は貧弱であったため、Schemeよりももっと簡単に最適化のできるLisp方言を開発する必要があった。 Emacs Lispは、アプリケーション・プログラミングで使われる方言群であるSchemeやCommon Lispとは根本的に異なる。大きな違いの1つは、デフォルトで字句的スコープではなく動的スコープを使うことである。つまり、呼出し関数の局所変数は、呼び出された関数からも参照できるが、定義時のスコープで参照しているのではない。 Emacs Lispを書くのがGNU Emacsをカスタム化する唯一の方法ではない。バージョン20以降のGNU Emacsには「カスタム化」機能があり、利用者はグラフィカルなインターフェースによって一般的なカスタム化変数を設定できる。「カスタム化」機能は、比較的単純なものに制限されているものの、利用者の代わりにEmacs Lispのコードを書いてくれる。利用者全員がEmacsの提供する高度な拡張性が必要なわけではないし、またそういう人は自分でEmacs Lispのコードを書けるものだ。.

新しい!!: LISPとEmacs Lisp · 続きを見る »

階乗

数学において非負整数 の階乗(かいじょう、factorial) は、1 から までのすべての整数の積である。例えば、 である。空積の規約のもと と定義する。 階乗は数学の様々な場面に出現するが、特に組合せ論、代数学、解析学などが著しい。階乗の最も基本的な出自は 個の相異なる対象を一列に並べる方法(対象の置換)の総数が 通りであるという事実である。この事実は少なくとも12世紀にはインドの学者によって知られていた。は1677年にへの応用として階乗を記述した。再帰的な手法による記述の後、Stedman は(独自の言葉を用いて)階乗に関しての記述を与えている: 感嘆符(!)を用いた、この "" という表記は1808年にによって発明された。 階乗の定義は、最も重要な性質を残したまま、非整数を引数とする函数に拡張することができる。そうすれば解析学における著しい手法などの進んだ数学を利用できるようになる。.

新しい!!: LISPと階乗 · 続きを見る »

Eval

eval(イーバル)はいくつかのプログラミング言語が持つ、文字列を式として評価する関数、または複数の文をプログラム中のあるコンテキストで実行するサブルーチンである。 evalの類の機能はコンパイラ言語よりもインタプリタ言語でより一般的である。なぜならコンパイラ言語でこのような機能を実現するには、プログラム自体に言語処理系や(変数名などの)実行時情報を埋め込む必要があるからである。evalに近い機能を実現しているコンパイラ言語も存在する。.

新しい!!: LISPとEval · 続きを見る »

遅延評価

遅延評価(ちえんひょうか、lazy evaluation)や必要呼び(ひつようよび、call-by-need)は評価戦略の一種類であり、非正格な関数型言語で使用もされる。対義語は先行評価(eager evaluation)。.

新しい!!: LISPと遅延評価 · 続きを見る »

静的スコープ

静的スコープ(せいてきスコープ、英: static scope)とは、プログラミング言語におけるスコープの一種。字面(レキシカル、英: lexical)のみから決定できるためレキシカルスコープ(lexical scope)ともいう(「構文」は一般に syntax の定訳であり、「レキシカル」と混同するのは誤解を招く)。 まず、一般的なローカル変数のスコープについて考える。 ブロックなどの構造を持つプログラミング言語では、あるブロックの内側のローカル変数はそのブロックの外側からは「見えない」というものが多い(以前のJavaScriptのように、関数ローカルのみで、ブロックローカルというスコープは無いものもある)。以下の疑似コードでは、 ブロックAで定義されている変数xとブロックBで定義されている変数xは同じ識別子を持つが、ブロックが異なるため実体は別である。また、ブロックBからは、さらに内側のブロックCで定義されている変数を参照することはできない。逆にブロックCからはブロックBで定義されている変数xとブロックCで定義されている変数yが参照可能である。 以上のようなスコープはローカル変数として一般的なものである。しかし、上記の疑似コード中にある f.

新しい!!: LISPと静的スコープ · 続きを見る »

設計

設計(せっけい、design)とは、建築物や工業製品等といったシステムの具現化のため、必要とする機能を検討するなどの準備であり、その成果物としては仕様書や設計図・設計書等、場合によっては模型などを作ることもある。.

新しい!!: LISPと設計 · 続きを見る »

計算

計算(けいさん)とは、与えられた情報をもとに、命題に従って演繹することである。 これは人間が無意識のレベルで行っている判断(→判断力)や、動物一般が行っている思考を、計算という形で意識化する手法ともいえ、その意味では「ものを考えること」一般が「計算」の一種だとみなすことも可能である。計算に使用される手続きはアルゴリズムと呼ばれる。対人関係において、戦略をアルゴリズムとして状況を有利に運ぶことも時に「計算」と表現される。 もっとも一般的かつ義務教育の範疇で最初に習うものは、算術(算数)における四則演算を、演算記号に示されたアルゴリズム通りに処理するものである。こういった「計算」は日常生活から専門的分野まで幅広く行われており、これを専門に処理する装置や機械も、人類の歴史において数多く開発され利用されている。.

新しい!!: LISPと計算 · 続きを見る »

計算機プログラムの構造と解釈

『計算機プログラムの構造と解釈』(Structure and Interpretation of Computer Programs。原題の略称SICPがよく使われる)は、1985年にMIT出版から刊行された、計算機科学分野の古典的な教科書。著者はマサチューセッツ工科大学 (MIT) の教授ハル・アベルソンとジェラルド・ジェイ・サスマン、ジェラルドの妻ジュリー・サスマン。かつてMITコンピュータ科学科の6.001として知られるプログラミングの入門講義で使われていた。第2版(ハードカバー版 ISBN 0-262-01153-0、ペーパーバック版 ISBN 0-262-51087-1)が1996年に刊行された。計算機科学の古典として広く認められている。 表紙に魔術師が描かれているため魔術師本(Wizard Book)としても知られ、まれに表紙の色をとって紫本(Purple Book)とも呼ばれる。 プログラミング言語LISPの方言Schemeが用いられ、抽象化、再帰、インタプリタ、メタ言語的抽象といった計算機科学の概念の真髄が説明されている。 第二版の和田英一による日本語訳(ISBN 978-4894711631)がピアソン桐原から2000年2月に発売された。、和田はHTML版を公開した。。。その後2014年5月に翔泳社より再版されている。.

新しい!!: LISPと計算機プログラムの構造と解釈 · 続きを見る »

計算機科学

計算機科学(けいさんきかがく、computer science、コンピュータ科学)とは、情報と計算の理論的基礎、及びそのコンピュータ上への実装と応用に関する研究分野である。計算機科学には様々な下位領域がある。コンピュータグラフィックスのように特定の処理に集中する領域もあれば、計算理論のように数学的な理論に関する領域もある。またある領域は計算の実装を試みることに集中している。例えば、プログラミング言語理論は計算を記述する手法に関する学問領域であり、プログラミングは特定のプログラミング言語を使って問題を解決する領域である。.

新しい!!: LISPと計算機科学 · 続きを見る »

評価戦略

評価戦略(ひょうかせんりゃく、evaluation strategy)とは、プログラミング言語や、ラムダ計算のような式から成る計算模型において、如何なる手順で、評価すなわち式から値を得るか、という(通常決定的な)規則群である。.

新しい!!: LISPと評価戦略 · 続きを見る »

高階関数

階関数(こうかいかんすう、higher-order function)とは、第一級関数をサポートしているプログラミング言語において、関数(手続き)を引数にしたり、あるいは関数(手続き)を戻り値とするような関数のことである。.

新しい!!: LISPと高階関数 · 続きを見る »

高水準言語

水準言語(high-level programming language: こうすいじゅんげんご、高級言語とも)とは、記述の抽象度が高いプログラミング言語のことである。対義語は機械語やアセンブリ言語を指す「低水準言語」である。「高級言語」の対は「低級言語」である。.

新しい!!: LISPと高水準言語 · 続きを見る »

論文

論文。.

新しい!!: LISPと論文 · 続きを見る »

関数

関数(かんすう)、函数.

新しい!!: LISPと関数 · 続きを見る »

関数型言語

関数型言語(かんすうがたげんご、functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。.

新しい!!: LISPと関数型言語 · 続きを見る »

連結リスト

連結リスト(れんけつリスト、Linked list)は、最も基本的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノードが、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。 連結リストは多くのプログラミング言語で実装可能である。LISP や Scheme 、Prologといった言語は組み込みでこのデータ構造を持っていて、連結リストにアクセスするための操作も組み込まれている。手続き型やオブジェクト指向型の言語(C言語、C++、Java)では、連結リストを作るには mutable(更新可能)な参照を必要とする。.

新しい!!: LISPと連結リスト · 続きを見る »

Forth

Forth(フォース)は、スタック指向のプログラミング言語およびそのプログラミング環境である。Forth はしばしば、かつての習慣に従ってすべて大文字で綴られることもあるが、頭字語ではない。.

新しい!!: LISPとForth · 続きを見る »

FORTRAN

FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピューターにおいて広く使われた世界最初の高級言語である。.

新しい!!: LISPとFORTRAN · 続きを見る »

GNU Emacs

GNU Emacs(グヌー・イーマックス)は最も有名で、かつ最も多く移植されているEmacsテキストエディタであり、GNUプロジェクト創設者のリチャード・ストールマンにより作成された。GNU Emacsは他のEmacs系エディタと同様に、チューリング完全なプログラミング言語で拡張可能である。GNU Emacsは「今日利用できる最もパワフルなテキストエディタ」と称されている。GNU Emacsは基盤となるシステムからの適切なサポートにより、複数の文字集合を含むファイルを表示することが可能だが、1999年の時点で既にほとんどの人間言語を同時に表示することが可能であった。GNU Emacsはその歴史を通じてGNUプロジェクトの中心となるコンポーネントであり、さらにフリーソフトウェア運動のフラグシップである。GNU Emacsは、他のEMACS派生と区別する場合にGNUMACSと略されることがある。GNU Emacsのうたい文句は「拡張可能で自己説明的なテキストエディタ」である。.

新しい!!: LISPとGNU Emacs · 続きを見る »

Haskell

Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。.

新しい!!: LISPとHaskell · 続きを見る »

HY

HY,hy.

新しい!!: LISPとHY · 続きを見る »

IBM

IBM(アイビーエム、正式社名: International Business Machines Corporation)は、民間法人や公的機関を対象とするコンピュータ関連製品およびサービスを提供する企業である。本社はアメリカ合衆国ニューヨーク州アーモンクに所在する。世界170カ国以上で事業を展開している。.

新しい!!: LISPとIBM · 続きを見る »

IBM 704

NASAの IBM 704 (1957) LLNL.) IBM 704はIBMが1954年4月に発表したコンピュータ。浮動小数点数演算ハードウェアを量産機として世界で初めて採用した。704 は IBM 701 のアーキテクチャと実装を大幅に強化したもので、互換性はない。.

新しい!!: LISPとIBM 704 · 続きを見る »

If文

if文(イフぶん)はプログラミング言語において、真理値に従って「もしXならば、Yせよ、さもなくばZせよ」というような条件実行の「文 (プログラミング) 」で、制御構造のひとつである。if else文と呼ばれることもある。 具体的な構文はプログラミング言語によって異なるが一般的に、条件式と、条件式の評価結果の値が「真として扱うべき値」の場合に実行される「then節」と呼ばれる部分があり、「偽として扱うべき値」の場合に実行されるelse節と呼ばれる部分が付く場合もある。 then節とelse節が式になる「条件演算子」がある言語も多い。言語によってはifが文ではなく、条件演算子と同様の「if式」である言語もある。.

新しい!!: LISPとIf文 · 続きを見る »

Information Processing Language

Information Processing Language(IPL)とは、1956年ごろからランド研究所およびカーネギー工科大学にてアレン・ニューウェル、クリフ・ショー、ハーバート・サイモンが開発したプログラミング言語。ニューウェルは言語仕様設計と同時にアプリケーションのプログラミングも行い、ショーはシステムプログラミング、サイモンはアプリケーションのプログラマとしてもユーザーとしても活動した。 一般問題解決のための各種プログラミング要素を備えている。例えば、リスト、連想(association)、スキーマ(フレーム)、動的メモリ確保、データ型、再帰呼び出し、連想探索(associative retrieval)、引数としての関数、ストリーム、協調型マルチタスク(ノンプリエンプティブ・マルチタスクのこと)などである。IPLはアセンブリ言語のスタイルだったが、リスト処理の概念を開拓した。.

新しい!!: LISPとInformation Processing Language · 続きを見る »

Interlisp

Interlisp(大文字/小文字の組み合わせは様々見られる)は、プログラミング言語LISPの一種を中心としたプログラミング環境。1967年、Bolt, Beranek and Newman (BBN) でPDP-10(OSはTENEX)上の BBN LISP として開発開始されたものである。Danny Bobrow、Warren Teitelman、Ronald Kaplan がBBNからパロアルト研究所に移った際に、それを Interlisp と改称した。Interlispはスタンフォード大学を中心とするDARPAコミュニティの人工知能研究者らに広まっていった。Interlisp で特筆すべきは、プログラミング環境に対話型開発ツールを統合したことであり、デバッガ、簡単な間違いを自動訂正するツール( - "do what I mean")、解析ツールなどが統合されていた。.

新しい!!: LISPとInterlisp · 続きを見る »

Io (プログラミング言語)

Io は純粋なオブジェクト指向プログラミング言語であり、Smalltalk、Self、Lua、LISP、Act1、NewtonScriptの影響を受けている。Self や NewtonScript のようなプロトタイプベースのオブジェクトモデルであり、オブジェクトとクラスを区別しない。Smalltalk のようにあらゆるものをオブジェクトとして扱い、動的型付けを行う。LISPのように文の概念がなく、制御フローは関数を使って実現される。Io はアクターによる並行性を実現しており、最近のプログラミング言語には珍しい特徴となっている。 Io の特筆すべき特徴は、その効率のよさ、処理系の小ささ、外部リソースを自由に使えるオープン性である。Io は小型で移植性の高い仮想機械で実行される。.

新しい!!: LISPとIo (プログラミング言語) · 続きを見る »

JavaScript

JavaScript(ジャバスクリプト)とは、プログラミング言語のひとつである。Javaと名前が似ているが、全く異なるプログラミング言語である(後述の#歴史を参照)。 JavaScriptはプロトタイプベースのオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。 ウェブブラウザ上で動作し動的なウェブサイト構築やリッチインターネットアプリケーションの開発に用いられる。また、2010年以降はnode.jsなどのサーバサイドJavaScript実行環境や各種ライブラリの充実により、MEANに代表されるように、Web開発の全ての領域で活用されるようになってきている。.

新しい!!: LISPとJavaScript · 続きを見る »

Julia (プログラミング言語)

Julia(ジュリア)は、汎用プログラミング言語水準から高度の計算科学や数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である。 並行計算、並列計算、分散コンピューティング、及びAdapter パターン不要でC言語やFORTRANへのForeign function interfaceに対応している。ガベージコレクションを行い先行評価を用いるほか、浮動小数点数計算、線型代数学、高速フーリエ変換、正規表現照合のライブラリを利用できる。 LLVMコンパイラフレームワークを用いてC言語、C++、Schemeで組まれており、標準ライブラリの殆どは独自に実装した。 2009年に開発が始まり、2012年2月にオープンソースとして公表された。 実装の最も注目すべき特徴は速度であり、完全に最適化したC言語(PythonやR言語よりも桁違いに速い場合が多い)に比べて2倍速ほどしか計算パフォーマンスが悪化しないことが知られている。.

新しい!!: LISPとJulia (プログラミング言語) · 続きを見る »

LISPマシン

LISPマシンは、LISPを主要なプログラミング言語として効率的に実行することを目的として設計された汎用のコンピュータである。ある意味では、最初の商用シングルユーザーワークステーションと言うこともできる。それほど数量的に大成功を収めたとはいえないが(1988年までに約7000台が出荷された)、その後よく使われることになる様々な技術を商用化する先駆けとなった。例えば、効率的ガベージコレクション、レーザープリンター、ウィンドウシステム、コンピュータマウス、高解像度ビットマップグラフィックス、などのネットワーキングにおける技術革新などである。1980年代にシンボリックス(3600、3640、XL1200、MacIvoryなど)、LMI(Lisp Machines Incorporated、LMI Lambda)、テキサス・インスツルメンツ(Explorer、MicroExplorer)、ゼロックス(InterLisp-D搭載ワークステーション)といった企業がLISPマシンを製造販売した。オペレーティングシステムは やInterlisp(ゼロックスの場合)で書かれ、後に一部は Common Lisp で書かれた。.

新しい!!: LISPとLISPマシン · 続きを見る »

LOGO

LOGO(ロゴ)は、教育向けとして設計されたマルチパラダイムのコンピュータプログラミング言語である。しばしば簡易言語だと誤解されていることもあるが、再帰なども扱える言語としての機能、リストなどのデータ構造や、I/O・ファイルなどの一般的な機能を持ったライブラリなど、簡易言語ではなく、十分な能力を持ったプログラミング言語である。特徴的な機能としては「タートルグラフィック」がある。 1967年、教育(特に構成主義教育)のために、、Wally Feurzeig、シーモア・パパート、シンシア・ソロモンによって開発された。名称はギリシャ語の logos (言葉)に由来する。(現代ではいささか想像しにくくなったことであるが)当時代表的な既存言語であったFORTRANや、その影響を受けた言語がもっぱら数値計算を指向したものであったのに対し、「言葉」で操作する言語であるといったようなことを強調したものである。多くの計算機科学の概念を教えるのに使うことができ、例えばカリフォルニア大学バークレー校の講師は3巻の著書 Computer Science Logo Style にまとめている。 コンピュータの使用を通じた児童の思考能力の訓練を目的としており、主に8歳から12歳の児童にも扱い易いよう配慮された豊富なグラフィック関連のコマンドが特徴である。主な使用者は学生、教師が想定された。.

新しい!!: LISPとLOGO · 続きを見る »

Lua

Lua(ルア)は、リオデジャネイロ・カトリカ大学の、主としてDepartment of Computer Science(コンピュータ科学科)and・or Computer Graphics Technology Group (Tecgraf) に属する、Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo らによって設計開発されたスクリプト言語およびその処理系の実装である。 手続き型言語として、また、プロトタイプベースのオブジェクト指向言語としても利用することができ、関数型言語、データ駆動型としての要素も併せ持っている。 Luaという名前は、ポルトガル語の月に由来する。.

新しい!!: LISPとLua · 続きを見る »

Macintosh

Macintosh 128K(1984年-) iMac 2007年モデル Macintosh(マッキントッシュ)は、アップルが開発および販売を行っているパーソナルコンピュータ。通称・略称は、Mac(マック)。.

新しい!!: LISPとMacintosh · 続きを見る »

Maclisp

MacLISP(または MACLISP)は、LISPプログラミング言語の一種。初期のLISPに基づき、1960年代後半、MITの Project MAC で開発された。リチャード・グリーンブラットがメインプログラマとして PDP-6 向けのコードベースを書き、その後の保守や開発は Jon L. White が担当した。'MacLISP' と呼ばれるようになったのは1970年代に入ってからで、PDP-6 上に他の LISP 処理系も登場したためである(BBN Lisp)。 MacLISP は DEC PDP-6/10 上で動作した。当初オペレーティングシステムとしては ITS だけだったが、後には PDP-10 上の他のOSでも動作するようになった。当初の実装は PDP-10 のアセンブリ言語で書かれていたが、後に Multics 上に PL/I を使って移植されている。MacLISP では、他の言語処理系ならバージョン番号がどんどん大きくなるような大幅な機能追加が継続的に行われた。 MacLISP は数式処理システム Macsyma の実装に使われ、逆に Macsyma の一部機能が MacLISP に導入された。SHRDLU の実装にも使われ、1980年代初期まで人工知能研究でよく使われた。Planner や Scheme など他のプログラミング言語の実装ベースとしても使われた。また、Multics 上の MacLISP は、LISPベースのEmacsの実装に使われた。 MacLISP は様々な影響を及ぼしたが、現在ではほとんど保守されていない。しかし、PDP-10 エミュレータ上では動作するので、古いAIプログラムを実行してみることはできる。 MacLISP には当初、少数の決まったデータ型しかなかった。CONSセル、アトム(当時はシンボルと呼ばれた)、整数、浮動小数点数だけである。その後、配列、多倍長整数、文字列、タプルが追加された。整数以外のオブジェクトはポインタとして実装されており、そのデータ型はポインタが指したアドレスの範囲で判断されていた。 プログラムはインタプリタでもコンパイラでも実行可能である。コンパイラは変数スコープが制限される点と、CAR や CDR といったインライン処理でエラーチェックをしない以外はインタプリタと変わらない。1970年代中ごろ、数値演算性能を強化したコンパイラが登場した。これにより、整数演算ではFORTRANと同程度の性能が実現された(ただし、配列やループの実装はFORTRANの方が高速だった)。 初期のバージョンは PDP-10 のアドレス範囲である 18ビットで制限されており、様々な実装上の制限があった。Multics では、より大きなアドレス空間が使えたが、Multics システム自体が数少なかった。人工知能で必要とするメモリ量と性能が PDP-10 の限界を超えたころ、LISPマシンが開発された。このため、LISPマシン上のLISPは MacLISP の後継に当たる。その他のLISP処理系も様々なコミュニティで作られ、最終的にこれらを統合した Common Lisp が生まれることとなった。 MacLISP という名称は Project MAC に由来しており、アップルの Macintosh とは無関係である。Macintosh 用のLISP処理系としては MCL (Macintosh Common Lisp) があるが、MacLISP とは関係ない。.

新しい!!: LISPとMaclisp · 続きを見る »

Macsyma

Macsyma (Project MAC’s SYmbolic MAnipulator) は、1968年から1982年までMITの Project MAC の一環として開発された数式処理システムであり、その後商用化された。世界初の数式処理システムで、初期のエキスパートシステムの1つであり、その様々なアイデアが後の Mathematica や Maple といったシステムに影響を与えた。.

新しい!!: LISPとMacsyma · 続きを見る »

Mathematica

Mathematica(マセマティカ)は、スティーブン・ウルフラムが考案し広く使われている数式処理システム。ウルフラム・リサーチの、ウルフラムが率いる数学者とプログラマのチームが開発し、同社が販売している。Mathematicaは項書き換えを基本として、複数のパラダイムをエミュレートするプログラミング言語としても強力である。.

新しい!!: LISPとMathematica · 続きを見る »

Maxima

Maxima(マキシマ)は、LISP で記述された数式処理システムである。GNU GPL に基づくフリーソフトウェアであり、現在も活発に開発が続けられている。Maple や Mathematica などの商用の数式処理システムと比べても遜色のない機能を持っている。.

新しい!!: LISPとMaxima · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: LISPとMicrosoft Windows · 続きを見る »

ML (プログラミング言語)

ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。.

新しい!!: LISPとML (プログラミング言語) · 続きを見る »

MOS 6502

MOS 6502はアメリカのモステクノロジーが1975年に発表した8ビット MPU (CPU) である。 1977年に発売されたApple II に搭載されて一躍有名になり、その後PET 2001(1977年1月発表、10月発売)、CBM3032、VIC-1001等、主にコモドール社の製品で採用されていた。日本ではパソコン用のCPUとしてはそれほど普及しなかったが、互換CPUがファミリーコンピュータやPCエンジンに採用されている。 モステクノロジー 6502 マイクロプロセッ.

新しい!!: LISPとMOS 6502 · 続きを見る »

Perl

Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理などのプログラムを書くのに広く用いられている。 言語処理系としてのperlはフリーソフトウェアである。Artistic LicenseおよびGPLのもとで配布されており、誰でもどちらかのライセンスを選択して利用することができる。UNIXやWindowsなど多くのプラットフォーム上で動作する。.

新しい!!: LISPとPerl · 続きを見る »

Planner

Planner("PLANNER"とも表記される)は、1969年にMITのカール・ヒューイットが設計したプログラミング言語。当初、サブセットの Micro-Planner や Pico-Planner が実装され、後に完全実装として Popler が登場。その後、派生言語として QA-4、Conniver、QLISP、Ether などが実装され、1970年代の人工知能研究の道具として重要な役割を果たし、商用の KEE や ART の開発にも影響を与えた。 当時マービン・ミンスキー、シーモア・パパート、Mike Peterson の学生だったヒューイットは、「知識の手続き的埋め込み」論者であり、高レベルの手続き的計画によるアプローチを信奉していた。当時、ジョン・マッカーシーらは人工知能(AI)のための知識表現として数理論理学を用いた宣言的かつ論理的アプローチを信奉しており、両者は対立関係にあった。このことは次のような基本的な疑問を生み出した。「手続き的アプローチと論理的アプローチの違いは何か?」である。これに答えが出せるようになるまで数年を要した。.

新しい!!: LISPとPlanner · 続きを見る »

Project MAC

Project MAC(MACプロジェクト)は、マサチューセッツ工科大学で行われたプロジェクトであり、オペレーティングシステム、人工知能、計算理論などの先駆的研究成果が生み出された研究機関である。後にMITコンピュータ科学研究所(MIT Laboratory for Computer Science、LCS)となった。同時代に同様な研究を行った組織としては、カリフォルニア大学バークレー校のProject Genie、スタンフォード人工知能研究所、(少し後になるが)南カリフォルニア大学の情報科学研究所がある。 "MAC"は頭字語である。当初は Mathematics and Computation であったが、後から考えられたバクロニムとしては Machine Aided Cognition とか Multiple Access Computer といったものがある(前者は人工知能的応用(認識等)の、後者は多重制御の意味でOS等のシステムを指す)。さらに後年、MITでそれぞれのグループを率いていたリーダーに掛けた冗談として、'''M'''insky Against '''C'''orby の略とも言われた(前者は MIT AIラボ を、後者は Multics を先導した。つまり、先に述べた2つのバクロニムに対応している)。.

新しい!!: LISPとProject MAC · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: LISPとPython · 続きを見る »

Racket

Racket (旧称 PLT Scheme) は、Schemeから派生したプログラミング言語である。Racket プロジェクトは以下の4つから構成されている。.

新しい!!: LISPとRacket · 続きを見る »

REBOL

REBOL は、データ交換言語であり、通信や分散処理に特化したプログラミング言語である。Relative Expression Based Object Language の略。設計者カール・サセンラスはこれをメッセージング言語と呼び、「REBOL の主なアイデアは、サーバ、クライアント、その間の通信やそれらのストレージで使える言語にするというものであった。REBOLの能力は、プログラミング言語の概念とメタデータ言語の概念を統合したことに由来する。REBOLの究極の目的は、インターネット上のあらゆる機器間で情報がどのように格納され、交換され、処理されるかを表す新たなアーキテクチャを提供することである。すなわち、人間と機械の間の情報の意味論的交換に使われることを意味する」と述べている。.

新しい!!: LISPとREBOL · 続きを見る »

REDUCE (数式処理システム)

REDUCE は汎用の計算機代数アプリケーションであり、主に物理学における利用を想定して開発された。 1960年代にアンソニー・C・ハーンによって開発が始められ、以来彼の主導の元、多くの国から様々な研究者が開発に関わっている。 REDUCEは、REDUCE用に実装されたLISP方言で書かれており、そのLISP方言はStandard LISPと呼ばれている。またRLISPと呼ばれるALGOLに似た構文で記述される。後者は、REDUCEのユーザレベルの言語のベースとして使われている。 REDUCE は多くの UNIX、Linux、Microsoft Windows、Apple Macintosh システム上に実装されている。この移植性の高さは Portable Standard LISP (PSL) または Codemist Standard LISP (CSL) を用いることで実現されている。 REDUCE はかつては $695 で販売されていたが、2008年12月にオープンソース化され、現在は修正BSDライセンスにしたがった利用、配布が認められている。また Sourceforge において開発が続けられている。.

新しい!!: LISPとREDUCE (数式処理システム) · 続きを見る »

R言語

R言語(あーるげんご)はオープンソース・フリーソフトウェアの統計解析向けのプログラミング言語及びその開発実行環境である。 R言語はニュージーランドのオークランド大学のRoss IhakaとRobert Clifford Gentlemanにより作られた。現在ではR Development Core Team によりメンテナンスと拡張がなされている。 R言語のソースコードは主にC言語、FORTRAN、そしてRによって開発された。 なお、R言語の仕様を実装した処理系の呼称名はプロジェクトを支援するフリーソフトウェア財団によれば『GNU R』である が、他の実装形態が存在しないために日本語での慣用的呼称に倣って、当記事では、仕様・実装を纏めて適宜にR言語や単にR等と呼ぶ。.

新しい!!: LISPとR言語 · 続きを見る »

RPL (プログラミング言語)

この項目では、ヒューレット・パッカード社のハンドヘルド電卓用のプログラミング言語について説明しています。.

新しい!!: LISPとRPL (プログラミング言語) · 続きを見る »

Ruby

Ruby(ルビー)は、まつもとゆきひろ(通称 Matz)により開発されたオブジェクト指向スクリプト言語であり、スクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。 また日本で開発されたプログラミング言語としては初めて国際電気標準会議で国際規格に認証された事例となった。.

新しい!!: LISPとRuby · 続きを見る »

S式

S式(エスしき、S-expression)とは、Lispで導入され、主にLispで用いられる、2分木ないしリスト構造の形式的な記述方式。SはSymbolに由来。 形式的には、S式は次のように定義される。.

新しい!!: LISPとS式 · 続きを見る »

Scheme

Scheme(スキーム)はコンピュータ・プログラミング言語 Lispの方言のひとつで、静的スコープなどが特徴である。仕様(2017年現在、改7版まで存在する)を指すこともあれば、実装を指すこともある。Schemeにより、Lisp方言に静的スコープが広められた。.

新しい!!: LISPとScheme · 続きを見る »

SECDマシン

SECDマシンとは、関数型言語のコンパイラのターゲット(目的機械)を意図し、後に大きな影響を与えた抽象機械である。SECD は Stack(スタック)、Environment(環境)、Code(コード)、Dump(ダンプ)の略であり、それぞれ仮想機械にあるレジスタの名称となっている。これらのレジスタはメモリ上の連結リストを指している。 Peter J. Landinの考案によるもので、1964年のComputer Journal誌が初出である。ラムダ計算式を評価するものだが、Landin の発表した説明は非常に抽象的で、(操作的意味論のように)実装にかなりの自由度が与えられていた。SECDマシンはより詳細化された形態で説明されることが多く、例えば Peter Henderson の Lispkit Lisp コンパイラは SECDマシンをベースとして1980年に登場している。以降、いくつかの実験的コンパイラが SECDマシンをターゲットとして使用してきた。また、ISWIMを提案した "The Next 700 Programming Languages" でも参考文献として挙げられている。 1989年、カルガリー大学の研究者がSECDマシンをハードウェアで実装する研究を行った。.

新しい!!: LISPとSECDマシン · 続きを見る »

SHRDLU

SHRDLUとは、自然言語処理を行う初期のプログラムである。1968年から1970年にかけて、テリー・ウィノグラードによって開発された。プログラミング言語LispとPlannerを用いて記述され、DEC社のコンピュータ・PDP-6および同社のグラフィック端末上で動作した。後にユタ大学のコンピュータグラフィックス研究所によって改良され、SHRDLUの「世界」はフル3Dで描画されるようになった。 SHRDLUの名称はETAOIN SHRDLUに由来している。.

新しい!!: LISPとSHRDLU · 続きを見る »

SKILL (プログラミング言語)

SKILL(スキル) はLISP系のスクリプト言語であり、ケイデンス・デザイン・システムズ社製の多くのEDA製品 (Cadence Allegro、Cadence Virtuoso等)で使われる「PCell」を記述するための言語である。その始めは1990年のIEEEの論文での提案にある。.

新しい!!: LISPとSKILL (プログラミング言語) · 続きを見る »

Smalltalk

Smalltalk(スモールトーク)は、Simula のオブジェクト(およびクラス)、LISPの徹底した動的性、LOGO のタートル操作や描画機能に、アラン・ケイの「メッセージング」というアイデアを組み合わせて作られたクラスベースの純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。 Smalltalk で一語であり、「Small Talk」「SmallTalk」などは誤りである。 大規模な開発実績としてはCargill Lynx Projectがあり、国産製品の開発実績としてはMCFrameがある。.

新しい!!: LISPとSmalltalk · 続きを見る »

Tcl/Tk

は、スクリプト言語 Tcl と、その GUIツールキット Tk を指す。非常に強力な GUI ツールキットと、シンプルな文法をもつ言語により、GUI ツールを素早く作り上げるのに適した強力なスクリプティング環境である。.

新しい!!: LISPとTcl/Tk · 続きを見る »

Xyzzy

xyzzyはWindowsで動作するテキストエディタ。Emacsと一般的なテキストエディタの利点を取り込んでいる。作者は亀井哲弥。マクロ言語としてCommon Lisp系のxyzzy Lispを実装しており、高機能なLisp処理系としての側面も持つ。現在は派生版の開発が続いている。.

新しい!!: LISPとXyzzy · 続きを見る »

束縛 (情報工学)

束縛またはバインディング(Binding)は一般に、参照 (情報工学) の集合である。コンピュータ関連で「束縛」という語が使われるものはいくつかあり、それぞれ具体的な内容は異なるので、以下いくつかの例を示す。.

新しい!!: LISPと束縛 (情報工学) · 続きを見る »

機械語

機械語(きかいご)またはマシン語(Machine code、machine language)とは、コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのもの(を、コンピュータ・プログラミング言語とみなしたもの)である。.

新しい!!: LISPと機械語 · 続きを見る »

木構造 (データ構造)

親子構造 木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。.

新しい!!: LISPと木構造 (データ構造) · 続きを見る »

末尾再帰

末尾再帰(まつびさいき)とは、再帰的な関数やプロシージャにおいて、自身の再帰呼び出しが、その計算における最後のステップになっているような再帰のパターンのことである。再帰にかかわらず一般に、そのような最後の呼び出しを末尾呼び出し (:en:Tail call)という。呼び出しではなく、戻り先を保存しないジャンプに最適化できるという特徴がある(#末尾呼出し最適化)。.

新しい!!: LISPと末尾再帰 · 続きを見る »

方言 (プログラミング言語)

プログラミング言語における方言(ほうげん)は、自然言語の方言と同様に基本的な文法や機能を共通しながら、細かい振る舞いに差違の見られる類縁言語の事をいう。ただし、外部ライブラリにより機能の拡張を行なう場合は、他の方言でも同様に拡張が可能なので方言とは言われない。多くの場合ライブラリは複数の方言に対応し、差違を吸収できるように作られている。また、Pascal、Modula、Modula-2、あるいはC言語とC++のように進化の過程で言語的な能力を変化させたものはたとえ類縁関係にあっても方言とは言われない。 プログラミング言語においては、ソースコードの互換性が方言の性質を決定する。逆に同じソースコードを同じプラットフォームにおいて同じ意味で解釈しても、吐き出される実行コードは処理系ごとに異なっている事が普通である。なぜならコードはコンパイラ最適化などの段階を経るため、利用者にとって「同じである」と判断される動作さえ行えば、実際の内部構造は問わないからである。言語仕様によっては、これら最適化などの段階についても仕様のうちに内包して制御する。 最も頻繁に見られる方言の例は、統一仕様をもった言語に対して複数のコンパイラ、インタプリタが独自の拡張仕様を盛り込むケースである。BASICはこの種の典型で、一応は規格が存在するのだが、言語間での互換性はほとんどないに等しい状態となった。近年ではJavaScriptなどもブラウザ間の互換性が問題となっている。 逆に、特に定まった規格がなく、処理系=仕様という形態から方言が生じたケースも多い。LISPはS式表現とcar, cdr, eval, condといった基本的な語彙があればほとんど自由に機能拡張ができるため、Common Lispが策定されるまでは無数の方言が乱立する状態にあった。現在普通に使われる処理系はCommon Lisp系、Scheme系、GNU EmacsのEmacs Lisp程度で以前よりは安定した状態にあるが、それでも実装毎の差違がかなり見られる。 CもLISPに近い経緯をたどった言語で、かつては処理系毎にかなりの実装差が見られた。しかしANSI C規格が出現した事で非互換性の問題はほぼ解消し、方言と呼べるような違いは初期のK&RスタイルとANSIスタイル、GCC拡張機能の差違程度となっている。 ほうげん.

新しい!!: LISPと方言 (プログラミング言語) · 続きを見る »

文 (プログラミング)

プログラムにおける文(ぶん、statement)とは、コンピュータプログラミング言語によるプログラムを構成するもののひとつで、一般に手続きを表すものである。 文の種類(意味)は、だいたいの類似はあるが、詳細はそれぞれのプログラミング言語によって異なる。 文の構文もそれぞれのプログラミング言語によって異なる。初期のFORTRANやCOBOLのように1行に1つの文を書く言語、C言語や多くのスクリプト言語のように文終端記号(セミコロンなど)で終端する言語、Pascalのように文と文との間の区切り記号で区切る言語などがある(終端記号と区切り記号の違いは、並びの最後のあとに記号が入るか入らないかである(厳密にはここで論じているのは文ではなく複文の構文である。またC言語についての説明は間違っており、例えばif文それ自体などにはセミコロンは現れない(セミコロンのみの「空文」、「do-while文」、そして式の後にセミコロンを付けた「式文」、などがC言語において「セミコロンが最後に付いている文」である。宣言などの後にもセミコロンが付く(が、C言語では宣言は文とは違う「宣言というもの」である)))。 1行1文の言語にあっては、行末または行頭に、言語で指定された記号を付けることで、行が継続しているものとして(継続行)、複数行にわたって文を記述することができるものもある。 類似する言葉として'''式'''がある。式は、必ずしも手続きを表さず、文とは異なり値を持つ(多くの手続き型言語では式にも手続きがともない、副作用という。特にC言語は代入が式である。また逆に言語によっては文も値を持つものもある)。 大まかに言えば、一つ以上の式や関数呼び出しで作られる、手続き構造の単位が文である、と考えてほぼ差し支えない。if文のように分岐構造を表すもの、代入文のように変数の更新を表すものなどが代表例である。構造化プログラミング以降の言語では、複数の文からブロック(「複文」とも言う)を構成できるのが一般的である。 if文などにおける構文の流儀には大きく2通りがあり、ひとつはC言語のような、 という規則のもので(というような文法だと多くのプログラマが信じているようだが、実際には全く違っている(前述。あるいは規格票を参照))、dangling else問題(通常は困るものではない。:en:Dangling elseも参照)の存在が知られている。 もうひとつの流儀は、古くはPerl、近年ではGoがこのようになっているが、 のように、任意の文を直接書くことができないようにしたものである。dangling else対策のひとつでもある。.

新しい!!: LISPと文 (プログラミング) · 続きを見る »

手続き型プログラミング

手続き型プログラミング(てつづきがたプログラミング、Procedural programming)は、「手続き呼び出し」の概念に基づくプログラミングパラダイムの一種。命令型プログラミングと同義に扱われることが多い。「手続き」はプロシージャ、ルーチン、サブルーチン、メソッド、関数(数学の関数とは異なる。)など様々な呼称があるが、実行すべき一連の計算ステップを持つものと定義できる。手続きはプログラム実行中の任意の時点で呼び出すことができ、他の手続きからの呼び出しも、自分自身からの呼び出し(再帰呼び出し)も含まれる。 手続き型プログラミングは単純な逐次型プログラミングや非構造化プログラミングよりも多くの場合よりよい選択である。非構造化プログラミングでは複雑なコードを組むことは困難であり、保守性が悪い。手続き型プログラミングには、以下のような利点がある.

新しい!!: LISPと手続き型プログラミング · 続きを見る »

1958年

記載なし。

新しい!!: LISPと1958年 · 続きを見る »

ここにリダイレクトされます:

ISO/IEC 13816JIS X 3012LISP言語Lispリスプ

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »