|
|
||
Course Computer Systems for AI-programmers"Computersystemen voor AI-programmeurs"Week 36, September 5 2011
DescriptionA computer system consists of hardware and system software that cooperate to run applications. Applications are executable programs, generated from source files. To create programs, a good programmer has to understand the system. After a short tour of the whole system, we peer directly beneath the layer of abstraction provided by a high-level language and get a view of the machine-level. By letting the compiler generate assembly code of very simple C-functions, we get insight of the instruction set a compiler is working with. Assembly language is very different from C code. In assembly language, there is minimal distinction between data types. The program is expressed as a sequence of very simple operations. Still, part of the program state, such as registers and run-time stack, are directly visible to the programmer (and the user, after a programming error). Only the mapping of C onto the Intel 32-bits instruction set is shown, but the same principles hold for other combinations of languages and machines. In this class the following concepts are introduced:
LiteratureThe class is based on chapter 1 and 3 of the book Computer Systems: A programmer's perspective by R.E. Bryant and D.R. O'Hallaron. Recommanded reading (23 pages, 1 hour):
Schedule
On request of the Student's Counsel, these lectures were recorded with the Lecturtiny Studio.
Download Lecturnity Player and listen to lecture, synchronized with the sheets. Note that this recordings are converted to the official version, and can now be played on Windows, Mac and Linux.
The class is scheduled in three hours:
Last updated September 5, 2011.
This web-page and the list of participants to this course is maintained by
Arnoud Visser
(arnoud@science.uva.nl)
|
visitors in | arnoud@science.uva.nl |