タグ

ブックマーク / ja.wikipedia.org (113)

  • APL - Wikipedia

    APL(エーピーエル)は、プログラミング言語のひとつで、1957年のケネス・アイバーソンによる創案に基づいた独特の表記法を用いる。処理系の実装は、ほとんどが対話型インタプリタである。とくに多次元配列の柔軟な処理が特徴である。「APL」は「プログラミング言語」(a programming language) の略であるが、言語の特性から、ときに「配列処理言語」(array processing language) などとされる。 APLは他の多くのプログラミング言語と異なり、「APL記号」と呼ばれる特殊な記号を用いるが、これにより計算式をきわめて簡潔(過ぎるほど)に記述できる。 IBM Selectricタイプライタの「ゴルフボール」印字ヘッドにAPL文字を載せた物を使ったIBM 2741キーボード・プリンター通信端末などを利用した。 特殊な記号の扱いに関しては、キーボードからの入力について

    APL - Wikipedia
  • ジョン・バッカス - Wikipedia

    ジョン・ワーナー・バッカス(John Warner Backus, 1924年12月3日 - 2007年3月17日)は、アメリカ合衆国の計算機科学者。初期の高水準プログラミング言語 (FORTRAN) の発明者[1]、(形式言語の文法の定義に汎用的に用いられる)バッカス・ナウア記法の発明者、また関数レベルプログラミング(英語版) (Function-level Programming) の提唱者でもある。 生涯[編集] ペンシルベニア州フィラデルフィアで生まれ、デラウェア州ウィルミントンで育った。ペンシルベニア州ポッツタウンの The Hill School で学んだが、まじめな学生だったとは言えない[2]。化学を学ぶためにバージニア大学に進学したが挫折し、アメリカ陸軍に入隊[2]。ハバフォード大学で医療を学びはじめ[3]、病院でのインターン時代に頭蓋の骨腫瘍と診断されたものの、手術は成功

    ジョン・バッカス - Wikipedia
  • ノーム・チョムスキー - Wikipedia

    ノーム・チョムスキーは1928年12月7日、アメリカ合衆国ペンシルベニア州フィラデルフィアのイースト・オーク・レーン(英語版)近郊で生まれた[6][7]。父ウィリアム・チョムスキー(英語版)は当時ロシア帝国支配下のウクライナで生まれたが、戦乱を避けて1913年にアメリカへ渡った。メリーランド州ボルチモアの搾取工場で働き、貯蓄してジョンズ・ホプキンス大学で学んだ甲斐もあり市のヘブライ人系小学校教師の職を得た。現在のベラルーシで生まれアメリカで育ったエルシー・シモノフスキーとの結婚を期にフィラデルフィアに移り、夫はミクッバ・イスラエル宗教学校で教鞭を取った。「とても温和で紳士、そして魅力的な人物」と評された[8] ウィリアムはここの校長にまで出世し、1924年にはユダヤ系教員養成大学では合衆国最古であるグラッツ大学(英語版)の教授に就任、1932年からは教授長職を勤めた。1955年からはDr

    ノーム・チョムスキー - Wikipedia
  • バッカス・ナウア記法 - Wikipedia

    バッカス・ナウア記法(英: Backus–Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。現在はこのBNFを拡張したEBNF (Extended BNF) が一般的に使われている。EBNFでは正規表現を用いてより簡単に記述でき、プロトコル規定言語であるASN.1や、XMLの構文定義にも利用されている。 ジョン・バッカスとピーター・ナウアがALGOL 60 の文法定義のために考案。当初は文脈自由文法の来の定義に則り or(|)以外の定義はなく、繰り返しは再帰を利用して表現されている。*、?等の量化子はBNFを拡張したEBNFによって導入された。パーサジェネレータを使用して構文解析器を生成する際に、構文を定義するためにも使う。 ISO/IEC 14977:1996においてEBNFの標準が定義されているが、EBNFにもいろいろな

  • 型付きラムダ計算 - Wikipedia

    型付きラムダ計算(かたつきラムダけいさん、英: typed lambda calculus)とは、無名の関数の抽象表現にラムダ () というシンボルを用いる型付き形式手法である。型付きラムダ計算は基礎的なプログラミング言語でもあり、MLやHaskellなどの型付き関数型言語の基盤であり、さらには型付き命令型プログラミング言語の間接的な基盤とも言える。また、カリー・ハワード同型対応によって数理論理学と証明論とも密接に関連しており、圏論のクラスの内部言語と見なすこともできる。例えば単純な型付きラムダ計算はデカルト閉圏 (CCC) の言語である。 ある観点から見れば、型付きラムダ計算は型を持たないラムダ計算を改良したものと言えるが、別の観点からは、より根的な理論と見ることもでき、型を持たないラムダ計算の方が型が1つしかない特殊ケースと見ることができる。 様々な型付きラムダ計算がこれまで研究され

  • 型システム - Wikipedia

    プログラミング言語はさまざまな値を扱う。代表的かつ最も原始的なものは数値や文字列だが、一般的に有限の資源制約があるコンピュータにとって都合のよい内部表現が使われ、例えば数値には32ビットや64ビットといった固定サイズの整数型や浮動小数点数型が、文字列には特定の文字コード集合によって符号化された整数値の羅列(文字配列)が使われることが多い。文字列の表現には最後の文字(番兵)に0を使用するゼロ終端文字列(ヌル終端文字列)が使われることもあれば、長さ情報を別途整数値で保持する複合データ構造が使われることもある。三角関数は浮動小数点数を引数にとり浮動小数点数を返す。先頭の文字を大文字にする関数は文字列を引数にとり文字列を返す。ユーザーからの入力を数値として扱うためには、文字列を解釈して数値を返す関数が必要である。ここで、3.14 や "hoge" といった値について「浮動小数点数」や「文字列」とい

  • 型理論 - Wikipedia

    型理論(かたりろん、英: Type theory)とは、プログラミング・数学言語学等に現れる型の概念及びそれらが成す型システムを研究対象とする数学・計算機科学の分野である。特定の型システムのことを型理論と呼ぶこともある。集合論の代替となる数学の基礎として役立てられる型理論(型システム)も存在する。そのような例としてアロンゾ・チャーチの型付きラムダ計算やマルティン・レーフの直観主義型理論が有名である。 20世紀初頭にバートランド・ラッセルが発見した、ラッセルのパラドックスによるフレーゲの素朴集合論の欠陥を説明する中で提起されたタイプ理論(theories of type)が型理論の起源であり[1]、後年にAxiom of reducibilityが付随された型理論は、ホワイトヘッドとラッセルの 『プリンキピア・マテマティカ』に収録されている[2]。 ここでは、Mendelson (1997

  • ラムダ計算 - Wikipedia

    この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。 適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2020年5月) ラムダ計算(ラムダけいさん、英語: lambda calculus)は、計算模型のひとつで、計算の実行を関数への引数の評価(英語: evaluation)と適用(英語: application)としてモデル化・抽象化した計算体系である。ラムダ算法とも言う。関数を表現する式に文字ラムダ (λ) を使うという慣習からその名がある。アロンゾ・チャーチとスティーヴン・コール・クリーネによって1930年代に考案された。1936年にチャーチはラムダ計算を用いて一階述語論理の決定可能性問題を(否定的に)解いた。ラムダ計算は「計算可能な関数」とはなにかを定義するために用いられることもある。計算の意味論や型理論

  • 高階関数 - Wikipedia

    高階関数(こうかいかんすう、英: higher-order function)とは、第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である。 関数(手続き)を引数に取る 関数を返す 高階関数は厳密には第一級関数をサポートしているプログラミング言語において定義される。C言語やPascalでは、関数へのポインタを利用して高階関数を模倣することができるが、関数ポインタによって第一級関数をサポートしているとみなされてはいない。高階関数は主に関数型言語やその背景理論であるラムダ計算において多用される。 また、ある関数(手続き)の引数となる関数(手続き)のことを関数引数[1]や手続き引数[2]と呼ぶこともある。

    高階関数 - Wikipedia
  • 列挙型 - Wikipedia

    列挙型(れっきょがた、enumerated typeあるいはenumeration type)とは、コンピュータプログラミングにおいて、プログラマが選んだ各々の識別子(列挙子)をそのまま有限集合として持つ抽象データ型である。列挙型は一般に、カードのスートのように番号順を持たないカテゴリ変数として使われるが、実際のコンパイル時あるいは実行時には、列挙型は整数で実装されることが多い。各々の識別子は通例異なる整数値を持つが、複数の識別子に対して意図的に同じ整数値を割り当てる(つまり別名を定義する)ことも可能である。 また列挙型は、整数を使用する場合と比較して、明示的にマジックナンバーを使用するよりもプログラムソースの可読性を改善するのに役立つ。言語によっては、列挙型の整数表現はプログラマに見えないようになっていることもあり、これによりプログラマが列挙値に対して算術演算を行うような乱用を防いでいる

  • 代数的データ型 - Wikipedia

    代数的データ型(だいすうてきデータがた、英: algebraic data type)とはプログラミング、特に関数型プログラミングや型システムにおいて使われるデータ型である。それぞれの代数的データ型の値には、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。 代数的データ型の値(データ)の感覚的な説明としては、引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの、である。コンストラクタに引数がある代数データ型は複合型(他のデータ型を組み合わせて形成する型)である。

  • Platform as a Service - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Platform as a Service" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2013年9月) Platform as a Service (PaaS) とは、インターネットを利用したコンピュータの新しい利用形態の1つである。 PaaSでは、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供する。開発者は、プラットフォーム上で構築したサービスを自分の顧客に提供することができる。 具体的には、インフラ、DBMS、ユーザインタフェースなどのシステム開発手段となるツール

  • Linux Virtual Server - Wikipedia

    LVS 公式ロゴ Linux Virtual Server (LVS) は、Linuxシステムの負荷分散ソリューションの一種である。1998年5月、Wensong Zhang によりオープンソースプロジェクトとして開始された。プロジェクトの目的は、コンピュータ・クラスター技術を使って高性能かつ高可用なLinuxサーバを構築し、スケーラビリティ、信頼性、保守性を向上させることである。 LVSプロジェクトの目下の焦点は新たな IPロードバランスソフトウェア (IPVS) の開発と、アプリケーションレベルのロードバランスソフトウェア (KTCPVS) の開発、クラスター管理機能の開発である。 IPVS: Linux カーネル内に実装された IPロードバランスソフトウェア。IPVS のコードは既に標準の Linuxカーネル 2.4 と 2.6 に導入されている。 KTCPVS: Linux カーネ

    Linux Virtual Server - Wikipedia
  • 居眠り床屋問題 - Wikipedia

    計算機科学における居眠り床屋問題(いねむりとこやもんだい、sleeping barber problem)とは、典型的なプロセス間通信およびプロセス間での同期に関する問題である。客がいる限り働いたまま、客がいなければ休んだままということを繰り返す理容師に例えられることからついた名称。理容師と客の挙動で、前述したプロセス間の問題を表現する。 理容師が一人だけいる床屋を考えてみる。この店には理容椅子が一脚あり、待合室には椅子がいくつか置かれている。理容師は整髪を終えると客を帰し、待合室で次の客が待っていないか調べる。もし客がいたら理容椅子に座らせ、髪を切り始める。客がいなかった場合は、理容師は昼寝を始める。一方、客は来店したらまず理容師が何をしているのか調べる。もしも理容師が昼寝をしていたら、理容師を起こして自分の髪を切らせる。理容師が他の客の髪を切っていたら、待合室の椅子に座る。ただし待合室

  • ACID (コンピュータ科学) - Wikipedia

    ACIDとは、信頼性のあるトランザクションシステムの持つべき性質として1970年代後半にジム・グレイが定義した概念で、これ以上分解してはならないという意味の不可分性(英: atomicity)、一貫性(英: consistency)、独立性(英: isolation)、および永続性(英語版)(英: durability)は、トランザクション処理の信頼性を保証するために求められる性質であるとする考え方である[1]。 この語はその4つの性質を表す英語の単語の頭文字をとって作られた頭字語であり、1983年にアンドレアス・ロイター[2]とテオ・ヘルダー[3]によって提唱された。

  • Lock-freeとWait-freeアルゴリズム - Wikipedia

    Lock-freeとWait-freeアルゴリズムとは、共有データにロックをかけてアクセスを防ぐアルゴリズムとは違い、複数のスレッドが同時並行的に、ある対象データを壊すことなしに読み書きすることを可能にするアルゴリズムである。Lock-free とはスレッドがロックしないことを意味しており、全てのステップにおいてシステムが必ず進行する。これはLock-free ではミューテックスやセマフォといった、排他制御のためのプリミティブを使ってはならないことを意味する。なぜならロックを持っているスレッドの実行が中断した場合、全体の進行を阻止しうるからである。Wait-free とは、他のスレッドの動作に関係なく、スレッドがいかなる操作も有限のステップで操作を完了させられることを指す。あるアルゴリズムがLock-freeであるがWait-freeでないことはありうる。Wait-free なアルゴリズム

  • ミューテックス - Wikipedia

    ミューテックス (英: mutex) とは、コンピュータプログラミングにおける技術用語。クリティカルセクションでアトミック性を確保するための排他制御や同期機構の一種である。「mutex」という語は「mutual exclusion」 (相互排他、排他制御) の省略形である。ここでは、狭義の排他制御について述べる。 セマフォをクリティカルセクションの排他制御に用いる時、セマフォでは(初期値が1でなければ)複数のタスクがクリティカルセクションに入ることを許可するのに対し、ミューテックスでは同時に一つのタスクのみがクリティカルセクションに入ることを許可する(ここで言うタスクとは、スレッドまたはプロセスを指す)。挙動はセマフォ変数の初期値を1にする事と等価。このようなタスク優先度とリンクしないミューテックスを、バイナリセマフォと呼ぶ場合もある。 狭義には、ミューテックスの場合にそれをロック(P操作

  • クリティカルセクション - Wikipedia

    クリティカルセクション (英: critical section) または危険領域は、コンピュータ上において、単一の計算資源(リソース)に対して、複数の処理が同時期に実行されると、破綻をきたす部分を指す。クリティカルセクションにおいては、排他制御を行なうなどしてアトミック性を確保する必要がある。 リソースの同一性が保証されなくなる可能性がある場合は、クリティカルセクションでは常に排他制御を行なう必要がある。プロセス内の共有資源に複数のスレッドがアクセスする可能性がある場合は、スレッド間の排他制御を行なう。一方、ファイルや共有メモリに代表されるシステム全体の共有資源に複数のプロセスがアクセスする可能性がある場合は、スレッド間だけでなくプロセス間の排他制御も行なう必要がある。 クリティカルセクションの排他制御ではデッドロックに注意する必要がある。 ウェブページの来訪者数を表すカウンタのプログラ

  • セマフォ - Wikipedia

    語源の腕木式信号機 セマフォ(英: semaphore)とは、計算機科学において、並行プログラミング環境での複数の実行単位(主にプロセス)が共有する資源にアクセスするのを制御する際の、単純だが便利な抽象化を提供する変数または抽象データ型である。 セマフォは、ある資源が何個使用可能かを示す記録と考えればわかりやすく、それにその資源を使用する際や解放する際にその記録を「安全に」(すなわち競合状態となることなく)書き換え、必要に応じて資源が使用可能になるまで待つ操作が結びついている。セマフォは競合状態を防ぐ便利なツールであるが、セマフォを使うことでプログラムにおける競合状態がなくなると保証するものではない。任意個の資源を扱うセマフォをカウンティングセマフォ、値が0と1に制限されている(ロック/アンロック、使用可能/使用不可の意味がある)セマフォをバイナリセマフォと呼ぶ。後者はミューテックスと同等

    セマフォ - Wikipedia
  • デッドロック - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "デッドロック" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2021年9月) デッドロックの例:処理 P1 はリソース R1 を要し、リソース R2 の出力を予定する。処理 P2 はリソース R2 を要し、リソース R1 の出力を予定する。 4つの処理(青線)が同一のリソース(中央の円)を要する。リソースは、複数の処理を同時には受け付けない。処理は左側より右側を優先する。全ての処理が同時に開始しようとすると、デッドロックが生ずる。デッドロックが生じた場合は、対称性を崩すことで解決される。 デッドロック(英: deadlock)とは、

    デッドロック - Wikipedia