CPS 444/544: Systems Programming I
Fall 2005
(from the undergraduate bulletin)
Analysis of compilers and their construction; programming techniques discussed
in the current literature; advanced computer applications in mathematical and
nonnumeric areas (3 semester hours).
(instructor's perspective)
The goal of CPS 444/544 is to establish an understanding of the design
and development of systems software, such as command interpreters, compilers,
debuggers, and compilation and configuration management tools, through the
study of pattern matching and filters, system libraries, interprocess
communication, and automatic program generation. Students can expect a survey
of various software tools supporting systems programming, including
make, RCS,
sed and awk, and lex and yacc,
and an illustration of their role in compiler
construction. Assignments are designed to provide students with a pragmatic
exposure to these tools as well
as issues faced by modern practitioners.
Examples will be presented using C, the Korn shell, and ML in
the UNIX programming environment. This is a programming-intensive course.
Syllabus
(pdf)
Meeting Times: T Th 4:30-5:45p, SC150
Instructor:
Dr. Saverio Perugini,
AN 145, 229-4079,
perugisa at notes dot udayton dot edu,
OHs: M W 3:30-4:30p, T Th 5:45-6:45p and by appointment.
Recommended Texts:
(added as the course progresses)
- [KR] B.W. Kernighan and D.M. Ritchie.
The C Programming Language. Prentice Hall, Second edition, 1988.
ISBN: 0-13-110362-8
- [KP] B.W. Kernighan and R. Pike.
The UNIX Programming Environment. Prentice Hall, Second edition, 1984.
ISBN: 0-13-937681-X.
Lectures and Course Notes
(click on a date to view lecture summary for that class)
- Introduction to systems programming in UNIX and C:
Aug 23,
25,
30,
Sep 1
- Using the shell:
Sep 6,
8
- Regular expressions and filters (sed and awk); compilation management
(make):
Sep 13,
15,
20,
22
27,
29,
Oct 4,
6
- Shell programming:
Oct 13,
18
- Lexical analysis and parsing (lex and yacc):
Oct 20,
25,
27,
Nov 1,
3
- ML:
Nov 8,
10,
15,
17,
22,
29,
Dec 1
Midterm Exam (Oct 27, closed book, closed notes; no exemptions)
Final Exam
(4:30-6:20p, Dec 13, SC150;
comprehensive, closed book, closed notes; no exemptions)
Homeworks
(programming style guide)
Homework #1
Homework #2
Homework #3
Homework #4
Homework #5
Homework #6
Homework #7 (due Dec 1, 4:30p, in class)
Project
Lexical Analysis (due Dec 9, 4:30p)
Account Info
Readings and Resources
(added as the course progresses)
FAQ
(most frequent @ top)
Q: I am unable to login to my CPS (Windows or UNIX) account.
What's the problem?
A: Contact the CPS systems administrator, Mr. Halter, at
dean.halter@notes.udayton.edu
or 229-3835,
and be as specific as possible. Mr. Halter's office is located in the back of
AN 131 and his office hours are 8:00-5:00p M-F.
Q: Opps! I forgot my CPS (Windows or UNIX) account
password. What should I do?
A: Contact the CPS system administrator, Mr. Halter. He
will be able to reset it for you.
Helpful Links
Feedback
Please feel welcome to contact
your instructor,
Dr. Saverio Perugini,
to provide any feedback you may have on the style of the lectures,
the concepts presented in class, the course webpage,
homeworks, the course project, deadlines, course and grading policies,
or your general
experience in the course.
"If you give me the right kind of Tinker Toys, I can imagine the building. I
can sit there and see primitives and recognize their power to build structures
a half mile high, if only I had just one more to make it functionally
complete."
-- Ken Thompson, creator of UNIX and
the 1983 ACM A.M. Turing Award
Recipient, quoted in IEEE Computer, May 1999.
(c) Saverio Perugini, Fall 2005, University of Dayton.
Permission to use ideas about
the organization of topics and any notes or material is granted,
provided suitable acknowledgments and citations are made.
|