タグ

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

  • UNIX哲学 - Wikipedia

    この項目「UNIX哲学」は途中まで翻訳されたものです。(原文:en:Unix_philosophy (文に英文が移されています)) 翻訳作業に協力して下さる方を求めています。ノートページや履歴、翻訳のガイドラインも参照してください。要約欄への翻訳情報の記入をお忘れなく。(2020年6月) UNIX哲学(ユニックスてつがく、英: The UNIX Philosophy)とは、ソフトウェア開発の文化的な規範と哲学のまとまりであり、UNIX OS開発者たちの経験に基づくものとされている。その内容は発言者によって異なり、以下の点に留意が必要である: UNIXが開発された1971年から10年以上後の発言が大半である 発言者にはUNIX開発と関わり合いが希薄な人物も含まれている UNIXを生み出したケン・トンプソンやデニス・リッチーは"哲学"(philosophy)という表現をしていない 哲学に反し

    michael26
    michael26 2015/08/13
  • Rust (プログラミング言語) - Wikipedia

    Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており[2]、構文的にはC++に似ているが[3]、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる[4][5] 。 Rustプロジェクトはオープンソースのコミュニティベース開発で進行しており[6]、言語仕様(検討段階含む)、ソースコード、ドキュメントはオープンソースライセンスで公開されている[7]。2006年の開発初期は、Mozillaの従業員のグレイドン・ホアレ(Graydon Hoare)[8]の個人プロジェクトだったが、2009年にMozi

    Rust (プログラミング言語) - Wikipedia
    michael26
    michael26 2015/07/07
  • CLU - Wikipedia

    CLU(クルー)は、1974年から1975年にかけてMITのバーバラ・リスコフが学生らと共に開発したプログラミング言語である。抽象データ型のコンストラクタ(操作コードを含む)を備えており、オブジェクト指向プログラミングへの重要なステップとなった。しかし、それ以外のオブジェクト指向の機能は欠けているか不完全であり、継承もなく、文法が扱いにくいことが欠点であった。CLU は完全なオブジェクト指向言語となる可能性を秘めていたが、実際にはそうならなかった。 CLU の文法は他の多くの言語と同様 ALGOL に基づいていた。重要な追加点として「クラスター; cluster」がある。クラスターとは、CLU の型拡張システムであり、言語名の由来でもある(CLUster)。クラスターは現在のオブジェクト指向言語で言えば「オブジェクト」にほぼ相当する。以下に複素数を実装した CLU のクラスターの例を示す:

    michael26
    michael26 2015/06/27
  • ビタビアルゴリズム - Wikipedia

    ビタビアルゴリズム(英: Viterbi algorithm)は、観測された事象系列を結果として生じる隠された状態の最も尤もらしい並び(ビタビ経路と呼ぶ)を探す動的計画法アルゴリズムの一種であり、特に隠れマルコフモデルに基づいている。観測された事象系列の確率計算のアルゴリズムである 前向きアルゴリズム(英: forward algorithm)も密接に関連している。これらのアルゴリズムは情報理論の一部である。 このアルゴリズムには、いくつかの前提条件がある。まず、観測された事象と隠されている事象は1つの系列上に並んでいる。この系列は多くの場合時系列である。次に、これら2つの並びには一対一の対応があり、1つの観測された事象は正確に1つの隠されている事象に対応している。第三に、時点 での最も尤もらしい隠されている事象の計算は、 での観測された事象と での最も尤もらしい隠された事象の系列のみに依

    michael26
    michael26 2015/06/25
    kuromoji viterbi
  • STUN - Wikipedia

    STUNは、軽量なクライアントサーバ型のプロトコルである。STUNクライアントは、例えばVoIP (Voice Over IP) 電話やインスタントメッセージクライアントなどのアプリケーションが有するプロトコルライブラリに含まれる。STUNクライアントは、NATによるIPマスカレードが行われるローカルネットワーク内で動作する。STUNを使用するホスト間で通信を行い始める際に、STUNクライアントはインターネット上のSTUNサーバにリクエストを送る。STUNサーバは、双方のSTUNクライアントのそれぞれのリクエストに対し、他方のパブリックIPアドレスとポート番号とを返す。数種類のリクエストの結果から、クライアントアプリケーションはNATのポート接合の有効時間を含む、NATの操作法を学ぶことができる。 NATデバイスは、アドレス及びポートマッピングの方式が異なるいくつかの種類で実装される。ST

    STUN - Wikipedia
    michael26
    michael26 2015/06/22
  • UDPホールパンチング - Wikipedia

    UDPホールパンチングによる NAT traversal とは、NAT を使ったプライベートネットワーク内にあるホスト同士がインターネット経由で双方向のUDPコネクションを確立する手法である。NAT には様々なものがあって動作仕様が標準化されていないため、あらゆる NAT で機能するわけではない。 NATの背後にある各ホストは、典型的には STUN や ICE を用いて通信相手との間に存在するNATの公開アドレスを取得する。この過程では、公開のアドレス空間にある第3の既知のサーバに一旦接続することでUDPポートマッピングと相手方のUDP状態を確立し、以後はパケットが違うホストから来ていても NATデバイスが状態を維持するだろうと期待して、直接的な通信に切り換える。通常、UDP状態は数十秒~数分以内に失効してクローズされてしまうので、UDPホールパンチングでは定期的な keep-alive

    michael26
    michael26 2015/06/22
  • ジャストインタイムコンパイル方式 - Wikipedia

    実行時コンパイラ(じっこうじコンパイラ、just-in-time compiler、JITコンパイラ)とは、ソフトウェアの実行時にソースコードをコンパイルするコンパイラのこと。通常のコンパイラはコンパイルを実行前に事前に行い、これをJITと対比して事前コンパイラ (ahead-of-timeコンパイラ、AOTコンパイラ)と呼ぶ。 ソフトウェアを構成するモジュール、クラス、関数などのある単位のコードがまさに実行されるその時に、コンパイルすることから「Just In Time」と名付けられた。動的コンパイルという用語は、実行時に機械語を生成するというより広い意味であり、JITコンパイルは動的コンパイルの一種である。 JIT方式の主な利点は、オペレーティングシステムやCPUに依存しないソースコードや中間コードでソフトウェアを配布できる事である。これはその都度コードを解釈しながら実行する解釈実行方

    michael26
    michael26 2015/06/20
  • ラムダ計算 - Wikipedia

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

    michael26
    michael26 2015/06/11
  • Clojure - Wikipedia

    Clojure (発音は/'klouʒər/[3], クロージャー)は、関数型プログラミング言語であり、LISP方言の一つである。関数型プログラミングのプログラミングスタイルでのインタラクティブな開発を支援し、マルチスレッドプログラムの開発を容易化する汎用言語である。Clojure言語のプログラムはJava仮想マシンで動作する。.NETで動作するClojureCLRも開発されている。Clojure言語は「データとしてのプログラムコード」 (英語:「code as data」) という思想で設計されており、洗練されたマクロ機構を持つ。 リッチ・ヒッキー (Rich Hickey)がClojure言語を設計した目的は、既存のJavaプラットフォーム上で動作して、並行コンピューティングができる、関数型のLISP系の言語を作ることである。[4][5] Clojure言語が並行コンピューティングを実

    Clojure - Wikipedia
    michael26
    michael26 2015/05/30
  • 中島聡 - Wikipedia

    中島 聡(なかじま さとし、1960年 - )は、日のコンピュータ技術者、ITエンジニア起業家、ライター。Xevo(旧UIEvolution)の創設者。アメリカ合衆国シアトル在住。学位は、工学修士(早稲田大学・1985年)、経営学修士(ワシントン大学・2009年)。 マイクロソフトでWindows 95、Windows 98、Internet Explorer 3.0/4.0のチーフアーキテクトなどを務めた。 1960年、北海道で生まれ、生後3ヶ月よりずっと東京都で育つ。幼少期より数学、科学に興味があり、将来の夢は科学者だった。早稲田大学高等学院入学直後にTK-80(NEC)を購入して以降、コンピュータの世界にのめり込んでいく。高校2年時からアスキーにおいて記事執筆やソフトウェアの開発に携わっていき、スピード向上の課題解決にも貢献していった。早稲田大学理工学部電子通信学科進学後も、アス

    michael26
    michael26 2015/05/25
  • モンティ・ホール問題 - Wikipedia

    モンティ・ホール問題 閉まった3つのドアのうち、当たりは1つ。プレーヤーが1つのドアを選択したあと、例示のように外れのドアが1つ開放される。残り2枚の当たりの確率は直感的にはそれぞれ 1/2(50%)になるように思えるが、はたしてそれは正しいだろうか。 モンティ・ホール問題(モンティ・ホールもんだい、英: Monty Hall problem)とは、確率論の問題で、ベイズの定理における事後確率、あるいは主観確率の例題の一つとなっている。モンティ・ホール(英語版)(Monty Hall, 名:Monte Halperin)が司会者を務めるアメリカゲームショー番組、「Let's make a deal(英語版)[注釈 1]」の中で行われたゲームに関する論争に由来する。一種の心理トリックになっており、確率論から導かれる結果を説明されても、なお納得しない者が少なくないことから、モンティ・ホール

    モンティ・ホール問題 - Wikipedia
  • 肝臓 - Wikipedia

    肝臓(かんぞう、希: ἧπαρ (hepar)、羅: iecur、独: Leber、英: liver)は、哺乳類・鳥類・両生類・爬虫類・魚類等の脊椎動物に存在する臓器の一つ。 ヒトの場合は腹部の右上に位置する内臓である。ヒトにおいては最大の内臓であり、体内維持に必須の機能も多く、特に生体の内部環境の維持に大きな役割を果たしている。 稿では主にヒトについて記載する。 焼肉用牛レバー 肝臓は、腹部の右上に位置して、ほぼ右肋骨の下に収まっており[1]、頭側(上方)には横隔膜が存在する。ある種の動物では体内で最大の内臓である。非常に機能が多いことで知られ、代謝、排出、胎児の造血、解毒、体液の恒常性の維持などの役割を担っている。また、十二指腸に胆汁を分泌して消化にも一定の役割を持っている。 働きは判明しているだけで500種類以上あるとされ、肝機能を人工装置によって全面的に補うことは出来ない[2]。

    肝臓 - Wikipedia
    michael26
    michael26 2015/05/05
    肝臓ってすごいな
  • イミュータブル - Wikipedia

    コンピュータプログラミングにおいて、イミュータブル (英: immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (英: mutable) なオブジェクトで、作成後も状態を変えることができる。mutableは「変更可能な」、immutableは「変更不可能な、不変の」という意味を持つ形容詞である。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる

    michael26
    michael26 2015/02/19
  • レーベンシュタイン距離 - Wikipedia

    レーベンシュタイン距離(レーベンシュタインきょり、英: Levenshtein distance)は、二つの文字列がどの程度異なっているかを示す距離の一種である。編集距離(へんしゅうきょり、英: edit distance)とも呼ばれる。具体的には、1文字の挿入・削除・置換によって、一方の文字列をもう一方の文字列に変形するのに必要な手順の最小回数として定義される[1]。名称は、1965年にこれを考案したロシアの学者ウラジーミル・レーベンシュタイン (露: Влади́мир Левенште́йн) にちなむ。 レーベンシュタイン距離は、同じ文字数の単語に対する置換編集に使われているハミング距離の一般化であると見なすことが可能である。レーベンシュタイン距離の更なる一般化として、例えば一回の操作で二文字を変換する等の方法が考えられる。 実際的な距離の求め方を例示すれば、「kitten」を「s

    michael26
    michael26 2015/01/13
  • xargs - Wikipedia

    xargs(エックスアーグズ)は、UNIX 系オペレーティングシステムに用意されているコマンドで、標準入力を読み込み、それを引数として指定したコマンドを実行する。 xargs は、改行等で区切られた標準入力を読み込み、空白で区切られた1行の文字列へ加工し、それを引数として指定したコマンドへ渡して実行させる。 % (echo Bravo.txt ; echo Charlie.txt) | xargs -- chmod a-x Alpha.txt というコマンドは次のものと等価である。 % chmod a-x Alpha.txt Bravo.txt Charlie.txt 上記の例は echo で生成させたファイルパスを xargs に与えるものだが、find コマンドで階層的に検索して取得したファイルパスを xargs に与えることもできる。 % find path -type f -nam

    michael26
    michael26 2014/12/11