Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
C Perl Assembly
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
disasm
docs
examples
nbproject
njlib
test_fb
test_fm
tests
Makefile
Makefile-njc-oo.mk
README.md
absyn.c
absyn.h
autotest.pl
codegen.c
codegen.h
common.h
foo.asm
foo.bin
grammar
instance.c
instance.h
instrs
main.c
parser.h
parser.y
scanner.h
scanner.l
semant.c
semant.h
sym.c
sym.h
table.c
table.h
types.c
types.h
utils.c
utils.h
vmt.c
vmt.h

README.md

README

Table of Contents

  • Introduction
  • Language
  • Features
  • Authors

Introduction

This project has been developed at the University of Applied Sciences Gießen-Friedberg (Technical University Mittelhessen) between October 2010 and February 2011.

The goal was to implement a compiler for the object oriented language "Ninja" as part of the masters course "Compiler Engineering 2". You can find more details about the language and the course on the course related website or our german FAQ for the language.

Language

Ninja is an object oriented language. It was invented by Professor Hellwig Geisse and is currently used in the bachelors course "Konzepte Systemnaher Programmierung".

Note: The language is still in development and there is no written language specification available. The here available implementation is just one interpretation of the language.

Features

Our compiler implementation has the following features:

  • Support for multiple files
  • Standard library for some of the core classes (Object, Integer, Character, Boolean)
  • Inline assembler using the special syntax: asm {% pushc 2 %}
  • Methods and field inside the same class can have the same name
  • Compiler is being tested against ~100 test cases

Authors

Fabian Müller Fabian Becker

Something went wrong with that request. Please try again.