タグ

低レベルに関するsouskのブックマーク (15)

  • NESプログラミング事始め - mizuno_takaakiの日記

    ファミコン戦士になるべく、ファミコン(NES)のプログラミングを始めた。とりあえず、情報収集と環境設定をした。ので覚え書き。 まず一通り読んだのが以下の2サイト。 ギコでもわかるファミコンプログラミング NES研究室 - from id:cojiさん で、漠然とその仕組みがわかってきた。スプライトや背景とパレットを使って、同じスプライトでも色を変えて表示すると買って仕組みは以前どこかで読んだことがあったし、Z80のアセンブラは昔書いたことがあるので、なんとかなる予感。ところで、ここに6502の命令セットが書かれているけれど、VirtualNESの説明にある「未公開命令」なるものが存在する予感があって、それも含まれているかわからない。ま、まだ今後いろいろ調べていこう。 続いて環境整備。ダウンロードしたものは以下。 cc65 - コンパイラ NESASM - こちらもコンパイラ Virtu

    NESプログラミング事始め - mizuno_takaakiの日記
  • Javaでコンパイラの基礎を理解する

    そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

  • Google の大規模データ処理: Days on the Moon

    Google の鵜飼文敏さんによる講演会「大規模データ処理を可能にする Google技術」に行ってきました。内容的には筑波大学で開かれたものと同じではないかと思います (「新ビジネスモデル」がそのままだったことなどから)。以下、上記記事に載っていないことを中心にメモから抜書きを。 此頃 Google にはやる物 現在 Google では Google の使命 (Google's mission is to organize the world's information and make it universally accessible and useful...) の早打ちが流行中。鵜飼さんは 50 秒程度、一番速い人は 30 秒程度。 Google の扱う情報 Google のいう「情報」はインターネット上のものだけに限らない (例: Google ブック検索)。 データセンター

  • 8ビットCPUの仮想機械「octopus」をRubyで実装する

    Perl で 8ビット CPU を作る - naoyaのはてなダイアリー octopusをRubyで実装してみました。IO関係、オプションまわりの処理は省略しています。できるだけRubyらしいプログラムを目指してみました。あんまりトリッキーな実装はしていません。 ファイル: octopus3.rb #!/usr/bin/env ruby # -*- compile-command: "ruby -Ks octopus3.rb" -*- class OctopusVm REG_PC = 7 REG_RET = 6 REG_SP = 5 ZFLAG = 1 OCT_INST = { 0 => 'nop', 1 => 'mov', 2 => 'in', 3 => 'out', 4 => 'movi', 5 => 'addi', 6 => 'subi', 7 => 'muli', 8 => 'di

    8ビットCPUの仮想機械「octopus」をRubyで実装する
  • 【コラム】OS X ハッキング! (232) Leopardを先取り(5) - LLVMに未来を見た | パソコン | マイコミジャーナル

    米国はiPhoneの話題でもちきり。販売店の前には、その筋の方々が列をなしているそうな。そういえば最近、行列することがなくなりました。新宿高島屋の前に並んだとき、道行く人々に「なんだあいつらは」といった目で見られたことも遠い昔のようです。 さて、今回は「LLVM」について。LLVMは仮想マシンの一種で、今秋登場するLeopardへの採用が決まっている。これまでなんとなく紹介しそびれていたが、5月下旬に最新版「LLVM 2.0」がリリースされたこともあり、これを機会に仕組みや特徴について説明してみたい。 What's LLVM ? LLVMは、Low Level Virtual Machineという正式名称が示すとおり、仮想マシンとしての機能を持つ実装系。対応するプラットフォームは、現在のところOS XとWindows(Mingw)、Linuxの3種。あまりメディアでは取り上げられてい

  • The LLVM Compiler System

    Abstract: LLVM (http://llvm.org) is a suite of carefully designed open source libraries which implement compiler components (like language front-ends, code generators, aggressive optimizers, Just-In-Time compiler support, debug support, link-time optimization, etc). The goal of the LLVM project is to build these components in a way that allows them to be combined together to create familiar tools

    sousk
    sousk 2007/12/21
    LLVM 概要プレゼン
  • Home

    Lecture “Optimizing I/O operations in multithreaded applications in Ruby”.

  • マシン語を知らない子ども達 - shi3zの日記

  • Kono's lecture

    Shinji KONO / Sat Jul 10 10:05:47 2021

  • Wataru's memo(2006-08-05): Programming in Lua

    ● [Books] Programming in Lua 自費出版にいたる過程で、ひとつのきっかけになってくれた書籍をご紹介します。 そのの名は、"Programming in Lua"。 現在、各界で注目を浴びつつある "組込型スクリプト言語Lua" の設計者 Roberto Ierusalimschy 氏による解説書です。2003年に第一版が出版され、今年2006年に第二版が発売されました(第一版はオンラインで公開中)。 Lua is my favorite extensible language Lua の詳細についてはいつかご紹介したいと思いますが、私が心惹かれている特徴は以下の通りです。 コンパクトで見通しの良いソースツリー(version 5.1 は約17000行) ANSI C compiler でビルド可能 真の "組込型" スクリプト言語 C 言語との相性の良さ 設計者

  • Branch Tracer for Linux

    btraxとは btraxの機能概要 スクリーンショット 適用例 リンク このプログラムの一部は、「独立行政法人 情報処理推進機構 オープンソースソフトウェア活用基盤整備事業」に係る委託業務の一環として開発しました。 btraxとはbtrax(Branch Tracer for Linux) は、Pentium4, Xeon, Pentium-M CPU のデバッグ機能である最新分岐記録機構を利用した、分岐命令トレーサです。カーネルに変更を加えることなく、カーネル/ドライバおよびアプリケーション/ライブラリの分岐命令実行状況を取得でき、そのログ情報を元に分岐カバレージ情報と実行経路を表示することができます。 btraxプログラムbtraxは、次の2つの機能から構成されます。 分岐命令実行ログ取得機能 ログ解析機能 分岐命令実行ログ取得機能には、分岐命令トレース用の体ドライバとは別に、下記

  • そもそもコンパイラの中ってどうなっているの?

    コンパイラの基構成 さて、今回はコンパイラの基構成について確認をしておきます。コンパイラは、入力としてソースコードを受け取り、内部で変換処理を行いオブジェクトコードを出力するプログラムです(図1)。ソースコードは、人間が理解しやすいプログラミング言語で記述されたものであり、オブジェクトコードは、コンピュータが理解しやすい2進数の羅列である機械語で構成されています。 Javaの場合は、ソースコードはプログラミング言語Javaの文法で書かれたコードが記述されたもの(.javaファイル)であり、オブジェクトコードはJavaVM用の機械語で書かれたクラスファイル(.classファイル)が相当します。 さて、ここでJavaのような仮想計算機用のプログラミング言語について見てみましょう。 Javaの場合には、Javaコンパイラによって出力されるオブジェクトコードは仮想計算機のJavaVM用の機械語

    そもそもコンパイラの中ってどうなっているの?
  • The es Operating System overview

    esオペレーティングシステムの概要 はじめに esオペレーティングシステムは研究用のピュア コンポーネント オペレーティングシステムです。esオペレーティングシステムでは、インターフェイス定義言語esidlでオブジェクトインターフェイスを定義し、それを実現するソフトウェアコンポーネントをC++言語で記述していくことで、オペレーティングシステムの機能を自由に拡張していくことができます。オブジェクトがカーネル内部に実装されているのか、カーネル外部のソフトウェアコンポーネントで実現されているのかについて、オブジェクトを利用するアプリケーションプログラムでは意識する必要がありません。インターフェイス定義自体も動的にシステムに組み込んで拡張していくことができます。 esオペレーティングシステム用のECMAScriptインタープリタesjsでは、esオペレーティングシステムのすべてのオブジェクトインタ

  • 『Rubyソースコード完全解説』サポートページ

    書籍『Rubyソースコード完全解説』はインプレスダイレクトで御予約・御購入いただけます。 書籍紹介ページ: http://direct.ips.co.jp/directsys/go_x_TempChoice.cfm?sh_id=EE0040&spm_id=1&GM_ID=1721 HTML 版 『Rubyソースコード完全解説』の文を HTML 形式で無償公開しています。 (2004-02-17) 全章を公開しました。 初校の修正を紙上で行ってしまったたため、現在公開しているのは初校段階の原稿です。 従って書籍では修正されているところがまだ修正されていない場合があります。 順番に修正していくつもりではいますが、いつ修正できるとは断言できません。 予め御了承願います。 なお、その逆に一部の章が出版時より新しい場合もあります。 オンラインで閲覧 tar.gz 形式でダウンロード zip 形式で

  • 1