The Wayback Machine - http://web.archive.org/web/20200611025105/https://github.com/Eidonko/ccourse
Skip to content
A short course about C (actually about Lex and YACC too!)
TeX Yacc Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
LICENSE
Makefile
README.md
b-adv-c1.tex
b-adv-c2.tex
beamerexample-lecture-style.tex
ccourse-logo.pdf
ccourse.aux
ccourse.log
ccourse.nav
ccourse.pdf
ccourse.snm
ccourse.tex
cprog.sty
fn.l
fn.y
p
v
v1
v2

README.md

My Own Course About C!

This is a course about programming in the C programming language. It is my own way of teaching C, meaning that it basically tells how I program in C. I tried to explain this "from the very beginning", explaining some of the basic ideas too, though it will benefit from some previous experience with using a computer. In particular I assume people to have some idea of what a "memory" or a "CPU" is. In one place, I assume someone knows what a register is actually :-)

The course has two major "special" ingredients:

  • It explains how to create C classes. Yes, I mean classes in the sense of object orientation. Of course C is not an object-oriented language, but in fact it offers many interesting features that can be used to create simple classes. The FILE type is indeed one such class; therefore I call this practice "the FILE methodology."
  • It deals very much with parsing, the old fashioned way: many pages of this course are devoted to two classic tool for creating tool that parse context-free grammars: Lex and YACC (aka GNU/Flex and GNU/Bison).

Why special emphasys to the above ingredients? Well, because :-). Meaning, because those are the tools and concepts that I have been using more when programming in C.

Should you like to do so, submit your exercises / comments / questions to Eidon@tutanota.com -- I don't promise that I will answer soon, but I do promise I will answer :-)

Enjoy!

Clarifications

  • Note: Aim of this course is not to introduce OOP; only, to explain that one can use C in a "different", possibly sounder way. C is still used in several embedded products; some of these products deliver safety-critical services! I thought it was important to tell how I deal with managing complexity in C.
You can’t perform that action at this time.