Pārlūkot izejas kodu

5.3 storage allocation & garbage collection

jordyn 4 gadi atpakaļ
vecāks
revīzija
b51745d6a9

BIN
5/3/jord/baseball.png


BIN
5/3/jord/gjs.png


BIN
5/3/jord/joecool.png


+ 84 - 0
5/3/jord/lecture.org

@@ -0,0 +1,84 @@
+* Lecture 10B: Storage Allocation & Garbage Collection
+https://youtu.be/AbK4bZhUk48
+text § 5.3
+
+there's one bit of mystery left: we've been blithely consing, always
+  assuming there's another one
+
+what is the glue the data structure is made of?
+
+gödel check!!
+
+he invented a way of encoding complicated expressions with numbers.
+see: GEB
+
+gjs can implement cons with numbers
+
+: (cons x y) ⇒ 2^x ⋅ 3^y
+: (car x)    ⇒ number of factors of 2 in x
+: (cdr x)    ⇒ number of factors of 3 in x
+
+"this is fine except the numbers quickly become larger in digits than
+the number of protons in the universe"
+
+how do we impose our lisp tree structure on a linear memory structure?
+
+a classic way of storing list structure in linear memory is with the
+method of dividing memory into two arrays: the-cars and the-cdrs
+
+each memory cell contains an object describing type of data and the
+piece of data which can be a pointer to another cell
+
+the only problem left is we don't have infinite memory
+
+--> break
+
+"10 to the 14th is not a very large number!"
+  --gjs
+
+the illusion of infinity can be arranged: 
+        whenever you look the thing is there
+
+a computer or person can only look a finite number of times
+
+"users produce garbage"
+  --gjs
+
+there must be some way to reclaim garbage
+
+if you trace every piece of data that is connected to by the
+registers, anything not marked in that trace will be garbage
+
+"bang!"
+  --gjs
+
+this was the mark-and-sweep gc program used on the DEC PDP-6.
+
+a faster better gc program is using the from-space/to-space method
+where you copy the useful stuff back and forth between the two blocks
+of memory, leaving behind "broken hearts"
+
+all reasonable garbage collectors are small
+
+--> break
+
+we've dazzled you with some things you'd like to compute
+
+are there things you can't compute? yes.
+
+you can't analyze an arbitrary program to determine if it is an
+infinite loop (the halting problem?)
+
+this procedure safe? cannot be implemented (related to cantor's
+diagonal argument)
+
+yes, the halting theorem. and with the halting theorem, we will halt.
+
+is this the last question?
+
+...
+
+apparently so.
+
+(fin)
+

BIN
5/3/jord/shade.png


BIN
5/3/jord/spacecadet.png