Tag: #computer-science
Implementing a queue using a linked list
The head is the front of the queue, allowing efficient dequeue. The tail is the back of the list. To enqueue efficiently, we keep a reference to the tail. 2020-01-18
Are processes and messages different?
Processes and messages can be unified - processes are just very slow messages, and message passing can be seen as splitting and fusing atoms. 2017-02-11
What is the happened-before relation?
The happened-before relation models time in distributed systems, where events at different locations may not have a total order. It defines time using causality. 2017-02-10
How to subtract in binary
To subtract in binary, we use carry bits and two’s complement representation. 2017-01-24
A summary of ‘On-the-Fly Garbage Collection: An Exercise in Cooperation’
A concurrent garbage collection algorithm that keeps synchronization constraints between the mutator and collector processes as weak as possible. It uses node markings (white, grey, black) to ensure reachable objects are not incorrectly collected. 2016-11-16
How does tricolor garbage collection work?
Golang’s garbage collector uses a “tricolor” algorithm, dividing heap objects into black, white, and grey sets. The algorithm can run concurrently with the program, and the “tricolor” invariant ensures no pointers go directly from the black set to the white set, allowing the white set to be cleared. 2016-11-11
Understanding the ELF
2015-01-26
A proof that the Halting problem is undecidable, using JavaScript and examples
A JS function to decide the Halting Problem will always have a logical contradiction. 2013-12-24
Domain boycotting
2012-04-12
All content copyright James Fisher.