2013.2
Projects for the Basic Software/Computer course at PUC-Rio.
The first project is an implementation of 16-bit integers in C. Basic operations are provided, such as addition, subtraction, multiplication and bit shifting, as well as comparator functions.
The second project is an implementation in C of a very simple programming language. The code is read from a file and the corresponding machine code is written to malloc
-ed memory. A function pointer points to the program's entry point, allowing the user of the library to run the generated code.
Basic architecture of a computer; CPU, memmory, peripherals. Storage and representation of primitive types, binary; two's complement, floating point, ASCII code. CPU instructions; addresses, interrupts. Assembly language. Operating System calls; file systems. Execution model of a high level language; implementation of instructions and data. Memmory layout; static area, dynamic allocation area, activation registers. Linking of object files.