2016年2月16日火曜日

開発環境

  • OS X El Capitan - Apple (OS)
  • Emacs(Text Editor)
  • Java (実行環境)
  • Python 3.5(プログラミング言語)

コンピュータシステムの理論と実装 (Noam Nisan (著)、Shimon Schocken (著)、斎藤 康毅(翻訳)、オライリージャパン)の9章(高水準言語)、9.5(プロジェクト)を取り組んでみる。

9.5(プロジェクト)

コード(Emacs)

FirstProgram/HelloWorld.jack

class HelloWorld {
  function void print() {
    do Output.printString("Hello, Jack World!");
    do Output.println();
    return;
  }
}

FirstProgram/FizzBuzz.jack

class FizzBuzz {
  
  field int num;
  
  constructor FizzBuzz new(int n) {
    let num = n;
    return this;
  }

  method void print() {
    var int n;
    var int r;

    let n = 1;
    while (n < (num + 1)) {
      do Output.printInt(n);

      let r = n - (15 * (n / 15));
      if (r = 0) {
        do Output.printString(":FizzBuzz");
      } else {
        let r = n - (3 * (n / 3));
        if (r = 0) {
          do Output.printString(":Fizz");
        } else {
          let r = n - (5 * (n / 5));
          if (r = 0) {
            do Output.printString(":Buzz");
          }
        }
      }
      do Output.println();
      let n = n + 1;
    }    
    return;
  }
}

FirstProgram/Main.jack

class Main {
  function void main() {
    var FizzBuzz fb;
    
    let fb = FizzBuzz.new(20);
    
    do HelloWorld.print();
    do fb.print();
    
    return;
  }
}

入出力結果(Terminal, IPython)

$ ./VMEmulator 
$ ./JackCompiler FirstProgram
$ 

0 コメント:

コメントを投稿