<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cs.indstate.edu/web/index.php?action=history&amp;feed=atom&amp;title=CS_456_Systems_Programming</id>
	<title>CS 456 Systems Programming - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cs.indstate.edu/web/index.php?action=history&amp;feed=atom&amp;title=CS_456_Systems_Programming"/>
	<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_456_Systems_Programming&amp;action=history"/>
	<updated>2026-04-14T16:09:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_456_Systems_Programming&amp;diff=87&amp;oldid=prev</id>
		<title>Jkinne: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_456_Systems_Programming&amp;diff=87&amp;oldid=prev"/>
		<updated>2025-08-17T13:22:12Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:22, 17 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_456_Systems_Programming&amp;diff=86&amp;oldid=prev</id>
		<title>wiki_previous&gt;Znoble1: Created page with &quot;== Catalog Description == An introduction to both program translation and operating systems. There will be a survey of topics such as: top-down and bottom-up parsing, scanning...&quot;</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_456_Systems_Programming&amp;diff=86&amp;oldid=prev"/>
		<updated>2021-05-18T13:05:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Catalog Description == An introduction to both program translation and operating systems. There will be a survey of topics such as: top-down and bottom-up parsing, scanning...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Catalog Description ==&lt;br /&gt;
An introduction to both program translation and operating systems. There will be a survey of topics such as: top-down and bottom-up parsing, scanning, code generation, symbol table management, linkers and loaders, batch processing systems, interacting processes, multiprogramming systems, and memory management.  Prerequisite - C or better in CS 202.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
C programming. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard Content ==&lt;br /&gt;
===Course Outline ===&lt;br /&gt;
* Version control: Make, RCS, Git&lt;br /&gt;
* File system I/O - open/close/read/write, printf/scanf, opendir/closedir/readdir/stat&lt;br /&gt;
* Local interprocess communication: signals, socketpairs, shared memory.&lt;br /&gt;
* Fork and execve: how shells work.&lt;br /&gt;
* Regular expressions (review!)&lt;br /&gt;
* Condensed introduction to x64 assembly language.&lt;br /&gt;
* How assemblers work.&lt;br /&gt;
* Structure of ELF files -- use of tools like objdump, readelf, nm, od.&lt;br /&gt;
* Lex/flex and yacc/bison examples starting with a simple calculator and then a simple programming language (something on the level of Dartmouth BASIC).&lt;br /&gt;
&lt;br /&gt;
===Learning Outcomes===&lt;br /&gt;
Solid understanding of the Unix/Linux API.  Basic understanding of programming language translation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Important Assignments and/or Exam Questions===&lt;br /&gt;
* Write a variant of ls(1) requiring accessing permissions and subdirectory traversal.&lt;br /&gt;
* A basic shell (command interpreter) with a read, parse, execute loop using a PATH, I/O redirection and pipes.&lt;br /&gt;
* Assembly language programming exercises, with a view to introducing the subset of assembler needed for compiler code generation.&lt;br /&gt;
* Extend calculator example done in class -- student might add parenthetical expressions or named (one line) functions, for example.&lt;br /&gt;
* A working compiler for a simple programming language.&lt;br /&gt;
* A working assembler would be a less time consuming alternative if more time was spent on the shell.&lt;br /&gt;
&lt;br /&gt;
=== Standard resources ===&lt;br /&gt;
* The manual.&lt;br /&gt;
* Linux System Programming: Talking Directly to the Kernel and C Library, Edition 2, Robert Love (O’Reilly)&lt;br /&gt;
* flex &amp;amp; bison, by John Levine (O’Reilly)&lt;/div&gt;</summary>
		<author><name>wiki_previous&gt;Znoble1</name></author>
	</entry>
</feed>