nayuki / CSC258-computer-debugger

CSC258 computer debugger.

Home Page:https://www.nayuki.io/page/csc258-computer-debugger

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSC258 computer debugger

Introduction

The CSC258 computer is a hypothetical machine created by Eric Hehner at the University of Toronto. Officially, its behavior and assembly language syntax are specified.

This package is an independent, unofficial implementation of the CSC258 computer, containing a rich set of software tools and sample programs. It was developed from scratch by Nayuki in 2010, and is open source (see license below). The tools are written in Java, requiring version 1.6 or above.

Home page: https://www.nayuki.io/page/csc258-computer-debugger

Features

User features:

  • Command-line runner (csc258comp.runner.Runner)
  • Graphical debugger (Swing UI) (csc258comp.debugger.Debugger)
    • State of registers
    • Execution step, backward-step, run, suspend
    • Breakpoints
    • Source code
    • Current instruction
    • Memory contents
  • Meaningful error messages from the compiler
  • Sample programs (in the "demos" directory)

Developer features:

  • Clean code, easily modifiable and extensible
  • Code guards against null pointers, out-of-bounds, illegal input parameters, and other misuses of the API in a fail-fast way
  • Some functionality is covered by JUnit tests
  • Compilation of CSC258 programs is separated from linking

Building

Run javac on every .java file. Or better yet, import the project into an IDE like Eclipse or NetBeans.

On Unix, you can also perform these commands in a shell:

cd /...your path to.../csc258
mkdir bin
javac -d bin $(find src -name "*.java" -print)

Running

You must set the working directory or the class path to the appropriate root for Java class files. For example, if the runner is located at /the/package/csc258comp/runner/Csc258Runner.class, then you must do one of these (just one):

  • cd /the/package
    java csc258comp.runner.Runner [CSC258 files]
  • java -cp /the/package csc258comp.runner.Runner [CSC258 files]
  • export CLASSPATH=/the/package
    java csc258comp.runner.Runner [CSC258 files]

Examples:

  • java csc258comp.runner.Runner demos/helloworld.258.txt
  • java csc258comp.debugger.Debugger demos/primes.258.txt demos/lib/const.258.txt demos/lib/printInt.258.txt

License

Copyright © 2017 Project Nayuki
https://www.nayuki.io/page/csc258-computer-debugger

Licensed under the GNU General Public License v3.0+ (see COPYING.txt)

About

CSC258 computer debugger.

https://www.nayuki.io/page/csc258-computer-debugger

License:GNU General Public License v3.0


Languages

Language:Java 100.0%