The course objectives can be found on the University course catalog:
The notes, references and material covered by the theoretical lessons can be found on Prof. Wolper's pages.
The course takes place every Tuesday during the first quarter at the Montefiore Institute (B28), room R3. The theoretical lessons are programmed from 14:00 to 16:00 and the practical sessions from 16:00 to 18:00.
The students are advised to come with their theoretical lessons material at each practice sessions.
Date | Information and files. | |
---|---|---|
Tutorial | 04 Oct. 2016 |
Tutorial 1: μ-code (ULG01) Additional material: ULG01 μ-code reference (coloured), support slides |
Tutorial | 11 Oct. 2016 |
Tutorial 2: μ-code (ULG01) and β-assembly Additional material:
|
Tutorial | 18 Oct. 2016 | End of Tutorial 2 and Q&A for Project 1. |
Tutorial | 25 Oct. 2016 |
Tutorial 3: μ-code (ULG02) - User and supervisor modes, support slides Tutorial 4: μ-code (ULG03) - Virtual memory, support slides Erratum (last update: 03/01/17) Two small errors were made in the exercise 2 of tutorial 4. See the correct solutions in this erratum. |
Holiday | 1 Nov. 2016 |
All Saints' Day. The course and tutorial are moved on Thursday (14:00) at room R3, B28! |
Deadline | 1 Nov. 2016, 23:59 |
Project 1: Quicksort in β-assembly Last update 11 Oct. 2016, 11:30 |
Tutorial | 3 Nov. 2016 |
Tutorial 5: statement, support slides |
Tutorial | 8 Nov. 2016 |
Tutorial 6: statement, support slides |
Tutorial | 15 Nov. 2016 |
Tutorial 7: statement, support slides |
Tutorial | 22 Nov. 2016 |
Tutorial 8: statement, support slides |
Tutorial | 29 Nov. 2016 |
Tutorial 9: cache memory, support slides |
Tutorial | 6 Dec. 2016 |
Tutorial 10: Parallel programming, support slides |
Deadline | 19 Dec. 2016, 23:59 |
Project 2: parallel programming (training an agent with a genetic algorithm) Last update 23 Nov. 2016, 08:45 You'll find below a little Java program for testing your configuration files. |
Tutorial | 13 Dec. 2016 |
Tutorial 11: A performance-oriented β-machine, support slides |
Tutorial | 20 Dec. 2016 |
Tutorial 12: A β-machine with 2- and 4-stages pipeline, support slides |
Deadline | 16 Août 2017, 23:59 |
All assignments that were not done during the first semester, or for which the obtained marks were not high enough can be done again. Statements are unchanged: |
The following .jar
file is a program enabling you to test your level configuration files.
Simply run the following command java -jar CheckFile.jar
and open your configuration file using the ...
button.
If your file is valid, the configuration will be rendered below. Otherwise, the cause of the error will be described in the Info field.
Program: CheckFile.jar
Example configuration:
CheckFile program:
βSim is a simulator for the β-assembly language written in Java. It features:
The simulator comes as a .jar
package you can run in several ways:
java -jar bsim-vram.jar
.Because the built-in code editor is minimal, I don't recommend using it for developing programs. For instance, there is no "Undo" nor "Redo" option, so you might lose some work by performing some non-deliberate deletions. It is better to first write your code in another text editor such as NotePad++ or Sublime Text (β-assembly syntax highlighting and snippets, check this forum for installation location), and then load it into the simulator for testing.
To execute some code you have written in the simulator, you first have to load this piece of code in the editor. This can be done by clicking on in the upper toolbar and walking through your filesystem for getting the
.asm
file.
When your code is ready to be executed, the execution can be triggered by clicking on in the upper toolbar. If your code does not contain any syntax error, you will be redirected to the execution window. Otherwise, the syntax error will be described in the bottom of the editor window.
You can indicate to the β-machine you want to pause the execution of your code at a specific instruction by writing the keyword .breakpoint
:
main: |; Do something LD(R1, 0, R5) .breakpoint |; The machine will pause its execution at this step ADDC(R5, R2, R6) |; ...