タグ

ブックマーク / codezine.jp (25)

  • CodeZine:JavaScriptにおけるオブジェクトの基本的性質

    はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaC++とは根的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基的な性質について見ていくと共に、JavaC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(

  • JavaScriptの関数とメソッド:CodeZine

    はじめに JavaScriptはオブジェクト指向言語です。しかし利便性のために、C言語などと同じようにグローバルな関数を定義し、構造化的な手法でプログラミングすることも可能です。 この記事では、JavaScriptにおける関数の基的な性質を見ていくと共に、関数の正体、および関数の使用方法について解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(JScript、ActionScript)でも通じる内容になっています。 対象読者 プログラミングの基的な知識、ならびにオブジェクトやメソッドと言った基礎的な概念については、ここでは解説しません。最低限、オブジェクト指向プログラミングについて理解をしている人を対象としています。

  • 高速かつ省メモリなbit vector「sucBV」を作る:CodeZine

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するデータ構造は「操作付きbit vector(SUCcinct Bit Vector:sucBV)」です。sucBVは、圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。STLのvector<bool>と同様に、bit列情報B[0....n-1]を保存します。このbit列情報は前もって与えられ、変更が無いことを前提とします。sucBVは、次の二つの操作を定数時間でサポートします。rank(p,bit)――B[0...p]中のbit(bitは1ま

  • x86系CPUのネイティブコードを解析する:CodeZine

    はじめに 今回はPC市場で一般的に採用される、x86系のCPUの機械語に迫ります。最新技術が次々と現れる昨今ですが、実はx86の規格はあまり目新しいものではありません。クロック周波数は上がるものの、機械語の形態は昔から引き継がれています。x86 CPUの種類 x86ネイティブコードを解読できるCPUには、下記のようなものが挙げられます(※AMD64を除く)。もはや説明はいりませんね。Intel Pentium 4Intel Pentium 3Intel Pentium 2Intel MMX PentiumIntel PentiumIntel 486/386AMD AthronAMD DuronAMD K-6  ここからは、32ビット以降のx86系 CPUに関する話題を扱っていきます。8ビットCPU、16ビットCPUに関するテクニックは出てきませんので、ご了承ください。

  • プログラミングと開発者のためのCodeZine:Rubyで作るProlog処理系(Ruby, Prolog, 記号処理, 自動推論)

    はじめに 1970年代にヨーロッパを主な舞台として生まれ育ったプログラミング言語Prologprogramming in logic)は、事実とルールから一種の自動推論を行う点に特徴があります。その基的な動作は200行ほどのRubyプログラムで実現できます。ここでは、筆者がRubyで作成したProlog処理系を解説します。 Prologによる簡単なプログラム例を下記に示します。 これは「ソクラテスは人間(human)である」「プラトンは人間である」という事実と、「人間ならばいつか死ぬ(mortal)」というルールを書いたものです。mortal(X) :- human(X)は、変数Xが実際には何であったとしても、もしもhuman(X)が成り立つならば(つまりXが人間ならば)、mortal(X)が成り立つ(つまり、Xはいつか死ぬ)という意味です。 簡略化のため、処理系ではRubyの構文要