Difference between revisions of "Nolimips"

From LRDE

(Created page with "---+ Nolimips ---++ Summary <!-- this text is included in other pages of the Web site. --> <!-- NOLIMIPSINTROSTART --> Nolimips is a MIPS-based simulator with "infinite...")
 
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
---+ [[Nolimips]]
 
   
---++ Summary
+
== '''Summary''' ==
   
 
<!-- this text is included in other pages of the Web site. -->
 
<!-- this text is included in other pages of the Web site. -->
Line 17: Line 16:
   
 
Its main features are:
 
Its main features are:
* minimal support of MIPS instruction set,
+
* minimal support of MIPS instruction set,
* built-in system calls (string printing and reading, etc.),
+
* built-in system calls (string printing and reading, etc.),
* unlimited registers ($x0, $x1, etc.),
+
* unlimited registers ($x0, $x1, etc.),
* gdb-like interactive shell.
+
* gdb-like interactive shell.
   
  +
{{#widget:Ohloh Project|id=480613}}
<script type="text/javascript" src="http://www.ohloh.net/p/480613/widgets/project_thin_badge.js"></script>
 
 
<!-- NOLIMIPSINTROSTOP -->
 
<!-- NOLIMIPSINTROSTOP -->
   
 
Nolimips has been initially written by Benoît Perrot &lt;benoit (AT) lrde.epita.fr&gt; and maintained by the Tiger Project team since.
 
Nolimips has been initially written by Benoît Perrot &lt;benoit (AT) lrde.epita.fr&gt; and maintained by the Tiger Project team since.
   
---++ Downloads
+
== '''Downloads''' ==
   
* Version 0.9a: http://www.lrde.epita.fr/~akim/download/nolimips-0.9a.tar.bz2
+
* Version 0.9a: http://www.lrde.epita.fr/~tiger/download/nolimips-0.9a.tar.bz2
   
---++ Git Repository
+
== '''Git Repository''' ==
   
* The Git repository is located at =git://git.lrde.epita.fr/nolimips=.
+
* The Git repository is located at https://gitlab.lrde.epita.fr/tiger/nolimips.git.
* You can browse it online via [[http://git.lrde.epita.fr/?p=nolimips.git;a=summary][GitWeb]].
+
* You can browse it online via [https://gitlab.lrde.epita.fr/tiger/nolimips Gitlab].
   
---++ Documentation
+
== Documentation ==
   
  +
* See Nolimips' documentation at https://www.lrde.epita.fr/~tiger/doc/:
* See Projects.NolimipsUsersGuide
 
  +
** HTML manual: https://www.lrde.epita.fr/~tiger/doc/nolimips.html.
  +
** PDF manual: https://www.lrde.epita.fr/~tiger/doc/nolimips.pdf.
   
---++ Tasks
+
== '''Tasks''' ==
   
---+++ General
+
=== General ===
   
* Use `#!nolimips [OPTIONS]' on first line for specifying options to tests. Coming soon.
+
* Use `#!nolimips [OPTIONS]' on first line for specifying options to tests. Coming soon.
* Augment test suite (with mips-gcc generated programs?).
+
* Augment test suite (with mips-gcc generated programs?).
   
---+++ Shell
+
=== Shell ===
   
* Improve command parsing.
+
* Improve command parsing.
* Search for possibilities of command and labels completion.
+
* Search for possibilities of command and labels completion.
   
---+++ Assembler
+
=== Assembler ===
   
* Generate byte code.
+
* Generate byte code.
* Look at antlr and other LL-(k) parser generator, to check their usability, portability and improvements.
+
* Look at antlr and other LL-(k) parser generator, to check their usability, portability and improvements.
   
---+++ Virtual machine
+
=== Virtual machine ===
   
* Handle exceptions more correctly.
+
* Handle exceptions more correctly.
* Emulate virtual memory.
+
* Emulate virtual memory.
* Look at debug dedicated hardware.
+
* Look at debug dedicated hardware.
   
---++ Links
+
=== Links ===
   
* [[http://gavare.se/mips64emul/][mips64emul]] A very complete MIPS architecture emulator, powerfull enough to run an operating system.
+
;[http://gavare.se/mips64emul/ mips64emul]
  +
: A very complete MIPS architecture emulator, powerfull enough to run an operating system.
* [[http://debian.speedblue.org][Debian packages for cross-compiling]] (_not_ required for using Nolimips)
+
;[http://debian.speedblue.org Debian packages for cross-compiling]
  +
: Note that these packages are ''not'' required to use Nolimips.
   
---++ Contact
+
== '''Contact''' ==
   
Send any questions or comments to projects&#8288;@&#8288;lrde&#8288;.&#8288;org.
+
Send any questions or comments to projects&#8288;@&#8288;lrde&#8288;.&#8288;epita.&#8288;fr.
 
 
-- %roland% - 10 Aug 2013
 

Latest revision as of 11:47, 4 May 2015

Summary

Nolimips is a MIPS-based simulator with "infinitely many registers". It consists of an assembler which reads MIPS assembly code, and of a virtual machine which executes the instructions processed by the assembler. For the moment Nolimips does not produce nor execute binary code, but ELF writer and loader are planned.

The main purpose of Nolimips is to help students of compilers courses to evaluate the output from their "high-level language into MIPS assembler code" compilers, before and after register allocation.


Its main features are:

  • minimal support of MIPS instruction set,
  • built-in system calls (string printing and reading, etc.),
  • unlimited registers ($x0, $x1, etc.),
  • gdb-like interactive shell.

Nolimips has been initially written by Benoît Perrot <benoit (AT) lrde.epita.fr> and maintained by the Tiger Project team since.

Downloads

Git Repository

Documentation

Tasks

General

  • Use `#!nolimips [OPTIONS]' on first line for specifying options to tests. Coming soon.
  • Augment test suite (with mips-gcc generated programs?).

Shell

  • Improve command parsing.
  • Search for possibilities of command and labels completion.

Assembler

  • Generate byte code.
  • Look at antlr and other LL-(k) parser generator, to check their usability, portability and improvements.

Virtual machine

  • Handle exceptions more correctly.
  • Emulate virtual memory.
  • Look at debug dedicated hardware.

Links

mips64emul
A very complete MIPS architecture emulator, powerfull enough to run an operating system.
Debian packages for cross-compiling
Note that these packages are not required to use Nolimips.

Contact

Send any questions or comments to projects⁠@⁠lrde⁠.⁠epita.⁠fr.