Program and Data
Representation: Slides
Go up to the main README file (md)
Course Introduction
(CS 2150 specific)
Slide set 1: C++
- Source code:
- General source code: evenodd.cpp (src), pointers.cpp (src), swap.cpp (src), dynamic_allocation.cpp
(src), delete.cpp (src), memory.cpp (src), swapref.cpp (src), cpptest.cpp (src)
- IntCell code: IntCell.java (src), TestIntCell.cpp (src), IntCell.h (src), IntCell.cpp (src)
- Rational code: Rational.java (src), Rational.h (src), Rational.cpp (src), TestRational.cpp (src)
Slide set 2: Lists
Slide set 3: Numbers
Slide set 4: Arrays &
Big-Oh
Slide set 5: Trees
- The trees diagrams were generated from the files described here
- The tree animation site is here
Slide set 6: Hashes
- The hash table bucket signs as both a pdf and an odt
Slide set 7: IBCM (machine language)
Slide set 8: 64 bit assembly language
- 64 bit materials: 64 bit assembly
slides
- The x86 book chapters on x86 and the C calling convention as the
reading
- The official (complete but harder to read) Linux x86-64 calling
convention docs: section 3.2 of System
V Application Binary Interface AMD64 Architecture Processor
Supplement, and the Itanium C++
ABI
- Source code
- The generated assembly was generated using
make asm
,
which uses gcc/g++; to generate it using clang/clang++, use the
‘asmclang’ target
- Makefile (src)
- Absolute value example: test_abs.cpp (src), test_abs_c.c (src), test_abs.s (src), test_abs_c.s (src), test_abs-non-intel.s
(src)
- Fibonacci example: test_fib.cpp (src), test_fib.s (src)
- Max example: test_max.cpp (src), test_max.s (src), test_max-O2.s (src), test_max-noextern.s
(src)
- String compare example: test_string_compare.cpp
(src), test_string_compare.s
(src)
- The tutorial for lab 8 (md)
- Tutorial 8 is nasm, which consists of two PDF book chapters that are
contained in this repository: x86 Assembly and The x86 C Calling
Convention; the contain more examples of assembly code
- You can skip a few of the sections (feel free to look at them if
interested, but they are not needed): Floating Point Instructions, SIMD
Parallelism, Saturated Arithmetic, and Graphics.
- You can view the 32 bit assembly material
(md), which was used in past years.
Slide set 9: Advanced C++
Slide set 10: Heaps and Huffman
coding
Slide set 11: Graphs
Slide set 12: Memory
Slide set 13: Esoteric Programming
Languages
Course Conclusion
(CS 2150 specific)