forked from uva-cs/pdr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
100 lines (100 loc) · 9.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Program and Data Representation: Slides</title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../markdown.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="program-and-data-representation-slides">Program and Data Representation: Slides</h1>
<p><a href="../readme.html">Go up to the main README file</a> (<a href="../readme.md">md</a>)</p>
<p><a href="../uva/course-introduction.html#/">Course Introduction</a> <strong>(CS 2150 specific)</strong></p>
<ul>
<li>Source code: <a href="../uva/code/introduction/DataStructureComparison.java.html">DataStructureComparison.java</a> (<a href="../uva/code/introduction/DataStructureComparison.java">src</a>)</li>
</ul>
<p><a href="01-cpp.html#/">Slide set 1: C++</a></p>
<ul>
<li>Source code:
<ul>
<li>General source code: <a href="code/01-cpp/evenodd.cpp.html">evenodd.cpp</a> (<a href="code/01-cpp/evenodd.cpp">src</a>), <a href="code/01-cpp/pointers.cpp.html">pointers.cpp</a> (<a href="code/01-cpp/pointers.cpp">src</a>), <a href="code/01-cpp/swap.cpp.html">swap.cpp</a> (<a href="code/01-cpp/swap.cpp">src</a>), <a href="code/01-cpp/dynamic_allocation.cpp.html">dynamic_allocation.cpp</a> (<a href="code/01-cpp/dynamic_allocation.cpp">src</a>), <a href="code/01-cpp/delete.cpp.html">delete.cpp</a> (<a href="code/01-cpp/delete.cpp">src</a>), <a href="code/01-cpp/memory.cpp.html">memory.cpp</a> (<a href="code/01-cpp/memory.cpp">src</a>), <a href="code/01-cpp/swapref.cpp.html">swapref.cpp</a> (<a href="code/01-cpp/swapref.cpp">src</a>), <a href="code/01-cpp/cpptest.cpp.html">cpptest.cpp</a> (<a href="code/01-cpp/cpptest.cpp">src</a>)</li>
<li>IntCell code: <a href="code/01-cpp/IntCell.java.html">IntCell.java</a> (<a href="code/01-cpp/IntCell.java">src</a>), <a href="code/01-cpp/TestIntCell.cpp.html">TestIntCell.cpp</a> (<a href="code/01-cpp/TestIntCell.cpp">src</a>), <a href="code/01-cpp/IntCell.h.html">IntCell.h</a> (<a href="code/01-cpp/IntCell.h">src</a>), <a href="code/01-cpp/IntCell.cpp.html">IntCell.cpp</a> (<a href="code/01-cpp/IntCell.cpp">src</a>)</li>
<li>Rational code: <a href="code/01-cpp/Rational.java.html">Rational.java</a> (<a href="code/01-cpp/Rational.java">src</a>), <a href="code/01-cpp/Rational.h.html">Rational.h</a> (<a href="code/01-cpp/Rational.h">src</a>), <a href="code/01-cpp/Rational.cpp.html">Rational.cpp</a> (<a href="code/01-cpp/Rational.cpp">src</a>), <a href="code/01-cpp/TestRational.cpp.html">TestRational.cpp</a> (<a href="code/01-cpp/TestRational.cpp">src</a>)</li>
</ul></li>
</ul>
<p><a href="02-lists.html#/">Slide set 2: Lists</a></p>
<ul>
<li>Source code: <a href="code/02-lists/findMax.cpp.html">findMax.cpp</a> (<a href="code/02-lists/findMax.cpp">src</a>), <a href="code/02-lists/objectCell.h.html">objectCell.h</a> (<a href="code/02-lists/objectCell.h">src</a>), <a href="code/02-lists/objectCellMain.cpp.html">objectCellMain.cpp</a> (<a href="code/02-lists/objectCellMain.cpp">src</a>)</li>
</ul>
<p><a href="03-numbers.html#/">Slide set 3: Numbers</a></p>
<ul>
<li>Source code: <a href="code/03-numbers/float_to_hex.cpp.html">float_to_hex.cpp</a> (<a href="code/03-numbers/float_to_hex.cpp">src</a>), <a href="code/03-numbers/FloatTest.java.html">FloatTest.java</a> (<a href="code/03-numbers/FloatTest.java">src</a>)</li>
</ul>
<p><a href="04-arrays-bigoh.html#/">Slide set 4: Arrays & Big-Oh</a></p>
<ul>
<li>Source code: <a href="code/04-arrays-bigoh/cmdlineparams.cpp.html">cmdlineparams.cpp</a> (<a href="code/04-arrays-bigoh/cmdlineparams.cpp">src</a>)</li>
</ul>
<p><a href="05-trees.html#/">Slide set 5: Trees</a></p>
<ul>
<li>The trees diagrams were generated from the files described <a href="graphs/index.html">here</a></li>
<li>The tree animation site is <a href="https://www.cs.usfca.edu/~galles/visualization/AVLtree.html">here</a></li>
</ul>
<p><a href="06-hashes.html#/">Slide set 6: Hashes</a></p>
<ul>
<li>The hash table bucket signs as both a <a href="misc/hash-table-buckets.pdf">pdf</a> and an <a href="misc/hash-table-buckets.odt">odt</a></li>
</ul>
<p><a href="07-ibcm.html#/">Slide set 7: IBCM (machine language)</a></p>
<ul>
<li>The online simulator is <a href="http://pegasus.cs.virginia.edu/ibcm/">here</a></li>
<li>Source code: <a href="../ibcm/summation.ibcm">summation.ibcm</a>, <a href="../ibcm/array-summation.ibcm">array-summation.ibcm</a></li>
<li><a href="../book/ibcm-chapter.pdf">IBCM book chapter</a> as the reading</li>
<li>There is a separate <a href="../ibcm/index.html">IBCM section</a> of this repository with more IBCM information, although that additional information will not be needed in this course</li>
</ul>
<p>Slide set 8: 64 bit assembly language</p>
<ul>
<li>64 bit materials: <a href="08-assembly-64bit.html#/">64 bit assembly slides</a>
<ul>
<li>The x86 book chapters on <a href="../book/x86-64bit-asm-chapter.pdf">x86</a> and the <a href="../book/x86-64bit-ccc-chapter.pdf">C calling convention</a> as the reading
<ul>
<li>Another good reading document is the <a href="https://www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf">x86-64 Machine-Level Programming document</a> from CMU, although they use the other assembly language format</li>
</ul></li>
<li>The official (complete but harder to read) Linux x86-64 calling convention docs: section 3.2 of <a href="https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf">System V Application Binary Interface AMD64 Architecture Processor Supplement</a>, and the <a href="https://itanium-cxx-abi.github.io/cxx-abi/">Itanium C++ ABI</a></li>
<li>Source code
<ul>
<li>The generated assembly was generated using <code>make asm</code>, which uses gcc/g++; to generate it using clang/clang++, use the 'asmclang' target</li>
<li><a href="code/08-assembly-64bit/Makefile.html">Makefile</a> (<a href="code/08-assembly-64bit/Makefile">src</a>)</li>
<li>Absolute value example: <a href="code/08-assembly-64bit/test_abs.cpp.html">test_abs.cpp</a> (<a href="code/08-assembly-64bit/test_abs.cpp">src</a>), <a href="code/08-assembly-64bit/test_abs_c.c.html">test_abs_c.c</a> (<a href="code/08-assembly-64bit/test_abs_c.c">src</a>), <a href="code/08-assembly-64bit/test_abs.s.html">test_abs.s</a> (<a href="code/08-assembly-64bit/test_abs.s">src</a>), <a href="code/08-assembly-64bit/test_abs_c.s.html">test_abs_c.s</a> (<a href="code/08-assembly-64bit/test_abs_c.s">src</a>), <a href="code/08-assembly-64bit/test_abs-non-intel.s.html">test_abs-non-intel.s</a> (<a href="code/08-assembly-64bit/test_abs-non-intel.s">src</a>)</li>
<li>Fibonacci example: <a href="code/08-assembly-64bit/test_fib.cpp.html">test_fib.cpp</a> (<a href="code/08-assembly-64bit/test_fib.cpp">src</a>), <a href="code/08-assembly-64bit/test_fib.s.html">test_fib.s</a> (<a href="code/08-assembly-64bit/test_fib.s">src</a>)</li>
<li>Max example: <a href="code/08-assembly-64bit/test_max.cpp.html">test_max.cpp</a> (<a href="code/08-assembly-64bit/test_max.cpp">src</a>), <a href="code/08-assembly-64bit/test_max.s.html">test_max.s</a> (<a href="code/08-assembly-64bit/test_max.s">src</a>), <a href="code/08-assembly-64bit/test_max-O2.s.html">test_max-O2.s</a> (<a href="code/08-assembly-64bit/test_max-O2.s">src</a>), <a href="code/08-assembly-64bit/test_max-noextern.s.html">test_max-noextern.s</a> (<a href="code/08-assembly-64bit/test_max-noextern.s">src</a>)</li>
<li>String compare example: <a href="code/08-assembly-64bit/test_string_compare.cpp.html">test_string_compare.cpp</a> (<a href="code/08-assembly-64bit/test_string_compare.cpp">src</a>), <a href="code/08-assembly-64bit/test_string_compare.s.html">test_string_compare.s</a> (<a href="code/08-assembly-64bit/test_string_compare.s">src</a>)</li>
</ul></li>
<li>The tutorial for <a href="../labs/lab08/index.html">lab 8</a> (<a href="../labs/lab08/index.md">md</a>)</li>
<li>Tutorial 8 is nasm, which consists of two PDF book chapters that are contained in this repository: <a href="../book/x86-64bit-asm-chapter.pdf">x86 Assembly</a> and <a href="../book/x86-64bit-ccc-chapter.pdf">The x86 C Calling Convention</a>; the contain more examples of assembly code
<ul>
<li>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.</li>
</ul></li>
</ul></li>
<li>You can view the <a href="32bit.html">32 bit assembly material</a> (<a href="32bit.md">md</a>), which was used in past years.</li>
</ul>
<p><a href="09-advanced-cpp.html#/">Slide set 9: Advanced C++</a></p>
<ul>
<li>Source code: <a href="code/09-advanced-cpp/name-contact.cpp.html">name-contact.cpp</a> (<a href="code/09-advanced-cpp/name-contact.cpp">src</a>)</li>
</ul>
<p><a href="10-heaps-huffman.html#/">Slide set 10: Heaps and Huffman coding</a></p>
<ul>
<li>Source code: <a href="code/10-heaps-huffman/binary_heap.cpp.html">binary_heap.cpp</a> (<a href="code/10-heaps-huffman/binary_heap.cpp">src</a>), <a href="code/10-heaps-huffman/binary_heap.h.html">binary_heap.h</a> (<a href="code/10-heaps-huffman/binary_heap.h">src</a>), <a href="code/10-heaps-huffman/heap-test.cpp.html">heap-test.cpp</a> (<a href="code/10-heaps-huffman/heap-test.cpp">src</a>)</li>
</ul>
<p><a href="11-graphs.html#/">Slide set 11: Graphs</a></p>
<p><a href="12-memory.html#/">Slide set 12: Memory</a></p>
<ul>
<li>Source code: <a href="code/12-memory/cache.cpp.html">cache.cpp</a> (<a href="code/12-memory/cache.cpp">src</a>), <a href="code/12-memory/strings.c.html">strings.c</a> (<a href="code/12-memory/strings.c">src</a>)</li>
</ul>
<p><a href="13-esoteric-pls.html#/">Slide set 13: Esoteric Programming Languages</a></p>
<p><a href="../uva/course-conclusion.html#/">Course Conclusion</a> <strong>(CS 2150 specific)</strong></p>
</body>
</html>