Download presentation
Presentation is loading. Please wait.
Published byOwen Gregory Modified over 9 years ago
1
The course
2
Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction to fundamental data structures – array – list – tree – hash table
3
Why C? Programs can be fast Programs can be small Runs on many platforms – Including embedded processors – Generally with some version of GCC Relatively easy to learn Useful “standard” library A subset of C++
4
Why not C? Can get very obscure ++a = *p->q + b * (x>y ? 5 : 13) ; Can lack robustness – Many viruses “attack” servers written in C Mostly because of a small number of library routines Hard to manage large software projects – Without object-oriented techniques No clear standards for graphical user interfaces C++ can be fast Java can be small
5
Which C ? K & R C -- 1972 – The Kernighan and Richie classic ANCI C -- started 1983 – ANSI X3.159-1989 and ISO/IEC 9899:1990 – Standard C, C89, C90 C90 – Another ANSI standard (adds C++/Java syntax) GCC
6
C with objects C++ – Used for business and gaming applications Java – Used for networking and user interface – Executes on a “virtual machine” C# – Used by Microsoft
7
Computer system programming? Not your father’s system(s) programming – No operating system kernels – Not for system administrators Who probably use perl and python – Not linux system programminglinux system programming Closer to application programming – But at an introductory level
8
Translation into assembly Illustration of modern compilation techniques – Lexical analysis ( flex ) radius is a variable 3.14 is a constant – Syntactic analysis ( bison ) 3.14 * radius * radius is an expression – Code generation By example
9
Fundamental data structures Ways of ordering information – For fast access – For growth The most useful ones – Generally taught in CS1 or CS2
10
Student learning outcomes Convert the following C language elements to LC-3 assembly language: functions, pointers, arrays, structures. Demonstrate the use of C compilers and debugging tools. Implement the following data structures in C: array, list, tree, hash table Define, implement, and use an abstract data type. Analyze an algorithm to determine its execution time. Design and implement a C program that performs a specified task.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.