タグ

programmingに関するohnishiakiraのブックマーク (148)

  • Haxe - The Cross-platform Toolkit

    Haxe 4 is here! Haxe is an open source high-level strictly-typed programming language with a fast optimizing cross-compiler. Download 4.3.6 Released: 2024-08-07 Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpre

    Haxe - The Cross-platform Toolkit
  • ハミング距離 - Wikipedia

    4ビット文字列のハミング距離を図示したもの。頂点に特定のビットの組合せが対応していて、頂点間の辺の数がハミング距離に対応する 情報理論において、ハミング距離(ハミングきょり、英: Hamming distance)とは、等しい文字数を持つ二つの文字列の中で、対応する位置にある異なった文字の個数である。別の言い方をすれば、ハミング距離は、ある文字列を別の文字列に変形する際に必要な置換回数を計測したものである。この用語は、リチャード・ハミング (Richard Wesley Hamming) にちなんで命名されたもので、鼻歌 (humming) ではない。 ハミング距離は、遠距離通信における固定長バイナリー文字列の中で弾かれたビット数や、エラーの概算を数えるのに用いられるために、信号距離とも呼ばれる。文字数 n の1ビット文字列間のハミング距離は、それらの文字列間の排他的論理和のハミング重み(

    ハミング距離 - Wikipedia
  • 関数型言語の技術マップ

    要求開発アライアンスの定例会で『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』というタイトルでセッションを行うことになりました。 セッション時間が50分なので、かなり俯瞰した形での全体像の説明になりそうですが、関連する要素技術の数が多いのと、内容が込み入っているので、ブログで補足説明をすることにしました。 今回はその第一弾です。 「関数型言語の関連技術」として用意した以下の図を説明します。関数型プログラミング言語レベルの説明はScalaを対象にします。 Disclaimer2008年にScalaをはじめて足掛け4年、関数型プログラミングとは、どうも数学を使ってプログラミングしていくことらしい、ということが分かってきました。 ScalaをBetter Javaとして使うのであれば、そこまで頑張らなくてもよいのですが、関数型言

    関数型言語の技術マップ
  • The Elixir programming language

    All Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages: current_process = self() # Spawn an Elixir process (not an operating system one!) spawn_link(fn -> send(current_process, {:msg, "hello world"}) end) # Block until the message is received receive do {:msg, contents} -> IO.puts(contents) end Due to their lightweigh

    The Elixir programming language
  • The Rust Programming Language

    A language empowering everyone to build reliable and efficient software. Performance Rust is blazingly fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages. Reliability Rust’s rich type system and ownership model guarantee memory-safety and thread-safety — enabling you to elim

    The Rust Programming Language
  • プログラム導出 - Wikipedia

    プログラム導出とは、計算機科学において数学的手段を用いて仕様からプログラムを導き出すことである。 プログラムを「導出」するとは、通常そのままでは実行不可能な形式的仕様を記述し、数学的に正しい規則を適用して実行可能なプログラムに変換することを意味する。このような手法で得られたプログラムは(最初の仕様にバグがない限り)構造的に正しいことが証明されている。 形式的検証の場合、最初にプログラムを書き、それが与えられた仕様に照らして正しいことの証明を与える。この際の問題は以下の通りである。 結果として出てくる証明は長くて複雑になる。 そのプログラムがどのように開発されたかを示せない。まるで「帽子から出てきたうさぎ」のように見える。 プログラム導出はそのような欠点を次のようにして改善する。 適切な数学的記法を新たに開発して証明を短くする。 仕様を操作することでプログラムを発見する。 プログラム導出とほ

  • Gotcha (programming) - Wikipedia

    It is syntactically valid: it puts the value of b into a and then executes code if a is non-zero. Sometimes this is even intended. However most commonly it is a typo: the programmer probably meant which executes code if a and b are equal.[1] Modern compilers will usually generate a warning when encountering the former construct (conditional branch on assignment, not comparison), depending on compi

  • 値 (計算機科学) - Wikipedia

    この項目では、計算機科学における「値」について説明しています。「値」のその他の用法については「値」をご覧ください。 この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "値" 計算機科学 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年12月) プログラミング言語における値(あたい)について説明する。値は、何らかの式を評価した結果である。式はデータ型を持ち、評価結果は内部的にはビット列になる。データ型が異なれば、同じビット列が異なる値(意味)を持つこともある。例えばあるビット列は整数、浮動小数点数または文字列として解釈されることがある。 いくつかの種類の値はほとんどのプログラミン

  • 評価戦略 - Wikipedia

    出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2014年9月) 評価戦略(ひょうかせんりゃく、英: evaluation strategy)とは、プログラミング言語や、ラムダ計算のような式から成る計算模型において、如何なる手順で、評価すなわち式から値を得るか、という(通常決定的な)規則群である。 プログラミング言語では、その意味のうち、サブルーチン呼び出しや演算子式の評価において引数をいつどういう順序で評価し、仮引数は実引数にどう置換されるのか、サブルーチン呼び出しや演算子式の値への置換はどうなのかといったことが、言語仕様によって、あるいは実装によって定義される(あるいは未定義とされる)。 ラムダ計算(など)における評価すなわち簡約(reduction)においては「(1)入れ子状になった式の最も外側から

  • #やってはいけないプログラマーのNG まとめ

    YONEUCHI, Takashi | Flatt Security @lmt_swallow if(x==0){printf(y[0]);}else if(x==1){printf(y[1]);}....else if(x == 65535){y([65536]);} //最後のif文に注目 #やってはいけないプログラマーのNG 2011-10-22 13:58:29

    #やってはいけないプログラマーのNG まとめ
  • Dart programming language

    dart.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. OK, got it

    Dart programming language
  • I love CUI

    はじめに Linux (Vine Linux) を使って、CUI の便利さに気がつきました。文字情報を扱うときの CUI のきびきびした反応は魅力的です。しかし、Linux の膨大なツールの数や EMACS などのコマンドの数を見ると、何をどの程度習得すれば良いのか戸惑います。このホームページでは、Linux を知的生産の道具として活用するためには、最低限どのツールをどの程度使いこなせば良いかを考えました。また、併せて、lynx, w3m, emacs, namazu などを組み合わせて作る便利な短いスクリプトを紹介します。 このホームページに掲載したスクリプトは、利用、改造、再配布自由です。著作権は著者が保有しますが、利用、再配布等に際し著作権を明記する必要はありません。また、これらのスクリプトは無保証です。これらのスクリプトによって発生したいかなる障害にも著者は責任を負いません。 知的

  • コンピュータ系技術書を無料で読めるサイトまとめ - 情報科学屋さんを目指す人のメモ(FC2ブログ版)

    何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 特に探すつもりはなかったけど、技術書を無料で読めるサイトに複数遭遇したので、出会った分だけでもとまとめてみた。無料で読めるサイトと言っても、基的には無料公開されているページへのリンク集という形。 O'REILLY Open Books http://oreilly.com/openbook/ リンク先の右にあるリンクの書籍が無料。左のジャンル分けは通常の書籍一覧なので注意。他のサイトに比べるとだいぶ少ない。 O'REILLY Open Feedback Publishing System (OFPS) http://ofps.oreilly.com/ 出版前の書籍を公開して、フィードバックを受け付けるというサイト。作りかけのも存在するが、最新の内容が読めると

  • 地雷力 - steps to phantasien(2011-08-22)

    地雷力のある人がいる. 簡単に直りそうなバグ, 一日で追加できそうな機能に手をつけたはずなのに, と当人はいう. バグがバグをよび, パッチがパッチをよび, 議論が議論をよんで, 目のまえに次々と刈るべき毛深いヤックが増えていく. そんな人がたまにいる. しかも話の流れでみつけてしまったバグをぜんぶ割り振られていたりする. 気の毒に...私が遠目にうかがうなかそのひとは毛を刈りだして, 刈るそばからバグや作業が次々と湧きだすけれど, しばらく経ってふと目をやるとあらかた片付いている. そして最後には歓声を耳にする: "おわった!" おめでとうと私は応じる. そのひとは次の仕事にとりかかかる, ああ, そのバグはやめておいた方が... けれどそのひとは動じない. いや一旦は動じるけれど, やれやれと仕事を再開する. そんな人には地雷力があるとおもう. 地雷体質, 羊毛フェチなど揶揄をこめるこ

  • 継続 - Wikipedia

    のようになる[3]。この式はすなわち、値 v を引数に取り、それに4を足した値を返す関数である。実際、この後 (+ 1 2) の計算結果が v に代入されて、4を足した値が最終的に計算結果が求められるため、この関数は確かに (+ 1 2) を評価する段階での「残りの計算」の表現である。 call/cc[編集] Schemeの call-with-current-continuation (call/cc と省略される) は、その時点での継続を引数として関数を呼び出す手続きである。Schemeの言語仕様書(R7RS[4])には「もっとも単純な例」として次のコードが載っている: このコードは、真正な(終端が空リストである)リストが渡された際にはそのリストの要素数を数えて返し、そうでない場合はfalse値を返す。 goto文を持つ言語の意味論[編集] 継続の概念はgoto文を持つ言語に意味論を与

  • クロージャ - Wikipedia

    クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念である。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。クロージャをサポートする言語によるプログラミングでは、単に関数の中に関数を定義することができるだけでなく、その際に、外側の関数(エンクロージャ)で宣言された変数を暗黙的に内側の関数に取り込んで操作することができる。主な利点としてはグローバル変数の削減やコールバック関数記述の簡素化が挙げられる。 典型的に

  • アクターモデル - Wikipedia

    アクターモデル(英: actor model)とは、1973年、カール・ヒューイット、Peter Bishop、Richard Steiger が発表した並行計算の数学的モデルの一種[1]。アクターモデルでは、並行デジタル計算の汎用的基要素として「アクター」という概念を導入している。アクターモデルは並行性の理論的理解のフレームワークとして使われるほか、並行システムの実装の理論的基礎としても利用されてきた。 アクターモデルはそれ以前の計算モデルとは異なり、物理法則を発想の基としている。他にも、LISP言語、Simula言語、ケーパビリティ・システム、パケット通信、初期のSmalltalkなどの影響を受けている。アクターモデルは「数百・数千のマイクロプロセッサから構成され、個々にローカルメモリを持ち、高性能通信ネットワークで通信を行う並列コンピュータが近い将来登場するとの予測」から開発され

  • 「抽象によるソフトウェア設計」が発売されます - まめめも

    来週には RubyKaigi ですが、Ruby とは全く関係ない話題。 半年前にレビュワーを募集していた Software Abstraction 翻訳ですが、とうとう発売されることになりました。今月中旬には書店に入るはずで、今日私の手元にも見が届いたところです。みんな各自 100 冊くらい買ってください。 抽象によるソフトウェア設計−Alloyではじめる形式手法−posted with amazlet at 11.07.08Daniel Jackson オーム社 売り上げランキング: 35132 Amazon.co.jp で詳細を見る↑アフィリエイト注意。みんな絶対クリックするなよ! Alloy とかいう形式手法の教科書です。Alloy でソフトウェアの仕様を形式的に記述して検証とかして、上流設計をうまいことこなしてください。 有界モデル検査とか言うと敷居が高く聞こえるかもしれません

  • 脳とコンピュータとの違い

    脳と現状のコンピュータは、計算モデル、アーキテクチャ、 アルゴリズムなどいろいろな観点からみて違いがあります。 はたしてコンピュータの上で脳と同じ機能は実現できるのでしょうか。 実現を難しくする要因として何が考えられるでしょうか。 ◆計算モデルの違い 計算する機械を数学的に抽象化したものを計算モデルと呼びます。 チューリングマシンは計算モデルの1つです。 チューリングマシンとは数学的に異なる計算モデルとしては、 例えば非決定性チューリングマシン、 (理想的な)アナログコンピュータ、量子チューリングマシン (量子コンピュータのモデル)があります。 これらはチューリングマシンよりも強力だったり速かったりします。 さて、「脳の計算モデル」はチューリングマシンと等価でしょうか、 それともより強力だったり速かったりするのでしょうか。 非決定性チューリングマシンは並列度が無限の計算機です。 脳は超並列

  • Coders at Work—プログラミングの技をめぐる探求 | 配電盤

    Peter Seibel著, 青木靖訳『Coders at Work プログラミングの技をめぐる探求 』(オーム社, 2011) カバーは「アテネの学堂」。カットされた右サイド、アリストテレス側を埋めるにふさわしい、スーパースター15人へのインタビュー集。さまざまな抽象度で仕事をしている偉人の多くが、ライブラリを組み合わせるだけの現状を憂えているのが印象的だった。ソフトウェアに関わる最重要文献を網羅した、巻末の文献リストは要チェック。デザインパターンや形式的証明、XPなど、流行りものをやっつけるための権威付けがほしい人にもおすすめ。 印象に残った発言(一人一個)と、インタビューに登場したにもかかわらず巻末のリストには載っていない文献をまとめておく。文脈が気になる人は書籍にあたってほしい。 ジェイミー・ザウィンスキー (Jamie Zawinski) みんなが最高だと言っていたに『デザイン

    Coders at Work—プログラミングの技をめぐる探求 | 配電盤