タグ

Programmingとwikipediaに関するwatarumのブックマーク (12)

  • 依存性の注入 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "依存性の注入" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年6月) 依存性の注入(いぞんせいのちゅうにゅう、英: Dependency injection)とは、あるオブジェクトや関数が、依存する他のオブジェクトや関数を受け取るデザインパターンである。英語の頭文字からDIと略される。DIは制御の反転の一種で、オブジェクトの作成と利用について関心の分離を行い、疎結合なプログラムを実現することを目的としている。 dependencyを「依存性」と訳すのは来の意味[1] から外れているため「依存オブジェクト注入」の用語を採用する文

  • カリー化 - Wikipedia

    カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つ

  • メタプログラミング - Wikipedia

    メタプログラミング (英語: metaprogramming) [注釈 1]とはプログラミング技法の一種で、一般に「プログラムを記述するプログラム」を書くこと、またはそのプログラムを指す[1]。対象言語に埋め込まれたマクロ言語によって行われることもある。 一般に、スクリプト言語はメタプログラミングが得意だとされている。コンパイル型言語は実行前にソースコードを一括で変換するという特性上、翻訳と実行を繰り返すスクリプト言語よりも実行時の割り込みや変換の自由度が低い[2]。 代表的なメタプログラミングの例はLispのマクロである。Lispはデータ、コードが全てS式で表現されるが、マクロによりS式が言語処理系に解釈される前に別なS式へと変換することができる。これにより例えば、 という記述から 構造体定義 point型 コンストラクタ make-point (省略時の初期値は0, 0) アクセサ p

  • Simula - Wikipedia

    SIMULA(シミュラ; SIMUlation LAnguage)は、オルヨハン・ダールとクリステン・ニガードによってALGOL60を拡張する形で1960年代に開発が始められたシミュレーション用途のプログラミング言語である[2]。 ALGOLのbegin ... endで囲まれた部分であるブロック(block)の概念を実体的な実例(instance)として扱うことを目的として、クラス(class)の構文と対象(object、オブジェクト)の概念を初めて導入した言語である[3]。初期のオブジェクト指向プログラミング言語の一つである。 概要[編集] オスロのノルウェー計算センターのクリステン・ニガードとオルヨハン・ダールが1962年から1967年にかけて、Simula の元となる Simula I と Simula67 を ALGOL 60 の拡張として設計/実装した。Simula は当初シミ

    Simula - 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にもいろいろな

  • List of CLI languages - Wikipedia

    CLI languages are computer programming languages that are used to produce libraries and programs that conform to the Common Language Infrastructure (CLI) specifications. With some notable exceptions, most CLI languages compile entirely to the Common Intermediate Language (CIL), an intermediate language that can be executed using the Common Language Runtime, implemented by .NET Framework, .NET Core

  • Webアプリケーションフレームワーク - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Webアプリケーションフレームワーク" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2021年6月) Web アプリケーションフレームワーク(英: Web Application Framework)は、動的なWebサイト、Webアプリケーション、Webサービスの開発をサポートするために設計されたフレームワークである。 Webアプリケーションフレームワークの目的は、Web開発で用いられる共通した作業に伴う労力の軽減である。 たとえば、多数のフレームワークがデータベースへのアクセスのためのライブラリやテンプレートエンジン(Webテンプ

  • チャーチ=チューリングのテーゼ - Wikipedia

    英語版記事を日語へ機械翻訳したバージョン(Google翻訳)。 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3に基づき、削除される可能性があります。 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。 履歴継承を行うため、要約欄に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入を参照ください。 翻訳後、{{翻訳告知|en|Church–Turing thesis|…}}をノートに追加することもできます。 Wikipedia:翻訳のガイドラインに、より詳細な翻訳の手順・指針につ

  • LISP - Wikipedia

    LISP(リスプ)は、関数型プログラミング言語である。S式と前置記法などが特徴である。 1958年秋から開発を始め[1]、1960年3月にLISP Iのマニュアルが書かれ[2]、1960年4月[3]に初めて論文発表されたLISPは、現在でも広範囲に使用されている高水準プログラミング言語の中ではFORTRAN、COBOLに次いで3番目に古い[4](世界で3番目に作られたプログラミング言語という意味では無く、他の言語が使われなくなったという意味)。 これまでに多数の方言が存在してきたが、今日広く使われているLISP方言は、Common Lisp、Scheme、Clojureなどである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータプログラムのための実用的かつ数学的な表記法として作られた。そして、すぐに人工知能研究に好まれるプログラミング言語になった。最初期の

    LISP - Wikipedia
  • 高階関数 - Wikipedia

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

    高階関数 - Wikipedia
  • 計算機プログラムの構造と解釈 - Wikipedia

    『計算機プログラムの構造と解釈』(Structure and Interpretation of Computer Programs。原題の略称SICPがよく使われる)は、1985年にMIT出版から刊行された、計算機科学分野の古典的な教科書。著者はマサチューセッツ工科大学 (MIT) の教授ハル・アベルソンとジェラルド・ジェイ・サスマン、ジュリー・サスマン。かつてMITコンピュータ科学科の6.001として知られるプログラミングの入門講義で使われていた[1]。第2版(ハードカバー版 ISBN 0-262-01153-0、ペーパーバック版 ISBN 0-262-51087-1)が1996年に刊行された[2]。計算機科学の古典として広く認められている。 表紙に魔術師が描かれているため魔術師(Wizard Book)としても知られ、まれに表紙の色をとって紫(Purple Book)とも呼ばれる

    計算機プログラムの構造と解釈 - Wikipedia
  • Trac - Wikipedia

    Trac(トラック)は、ソフトウェアのプロジェクト管理とバグ追跡のためのツールである。ウェブベース、オープンソースであり、CVSTracに影響を受けた。Edgewall Softwareにより開発され、保守されている。 TracはPythonにより実装されている。2005年の中ごろまではGPLで配布されていたが、バージョン0.9以降は修正BSDライセンスで配布されている[2]。 修正BSDライセンスとGPLは、どちらもフリーソフトウェアライセンスである。 Windows環境向けにはWindows上にSVN/Trac含めた環境を簡単に構築できるTrac Lightningがある。 Tracはバグのデータベース、バージョン管理、ウィキ間のハイパーリンク情報を提供する。 また、Subversion、Git、Mercurial、Bazaarといったバージョン管理システムへのウェブインタフェースも提

  • 1