cs

cs

61 bookmarks
Custom sorting
Post 1: Datalog, Chain-Forward Computation, and Relational Algebra
Post 1: Datalog, Chain-Forward Computation, and Relational Algebra
Our setting is logic programming, a field which attempts to design programming languages whose semantics have a close relationship to formal logic. The reason we might want to do this is that it suits our application domain more precisely than an implementation in a traditional programming language. Thus, using a logic programming language allows us to write more obviously-correct code, and perhaps even code that can be extracted cleanly from a certified implementation. Alternatively, if we did it ourselves, we’d have to do what our compiler (interpreter, …) would do anyway, so there’s no sense in doing it manually. Unfortunately, when we see a powerful tool, we are tempted to use it for everything: if our application is not ultimately-suited to the operationalization strategy of the logic programming engine we’re using, we simply obfuscate the issue in a veneer of formalism and end up with leaky abstractions. This is, I speculate, why logic programming languages have never caught on broadly for general-purpose programming. In this blog, I will detail the various trade-offs and implementation paradigms for modern logic programming engines, starting from Datalog and with a focus on program analysis.
·kmicinski.com·
Post 1: Datalog, Chain-Forward Computation, and Relational Algebra
Quickly identifying a sequence of digits in a string of characters
Quickly identifying a sequence of digits in a string of characters
Suppose that you want to quickly determine a sequence of eight characters are made of digits (e.g., ‘9434324134’). How fast can you go? In software, characters are mapped to integer values called the code points. The ASCII and UTF-8 code points for the digits 0, 1,…, 9 are the consecutive integers 0x30, 0x31, …, 0x39 … Continue reading Quickly identifying a sequence of digits in a string of characters
·lemire.me·
Quickly identifying a sequence of digits in a string of characters
How fast is bit packing?
How fast is bit packing?
Integer values are typically stored using 32 bits. Yet if you are given an array of integers between 0 and 131 072, you could store these numbers using as little as 17 bits each—a net saving of almost 50%. Programmers nearly never store integers in this manner despite the obvious compression benefits. Indeed, bit packing and … Continue reading How fast is bit packing?
·lemire.me·
How fast is bit packing?
5th HLF – Lecture: Leslie Lamport
5th HLF – Lecture: Leslie Lamport
Leslie Lamport: "How to Write a 21st Century Proof”Mathematicians have made a lot of progress in the last 350 years, but not in writing proofs. The proofs th...
·youtube.com·
5th HLF – Lecture: Leslie Lamport
Maybe Everything Is a Coroutine - Adam Nelson
Maybe Everything Is a Coroutine - Adam Nelson
I was inspired, after reading the excellent blog post Let Futures Be Futures, by the author's thought experiment of a language in which all functions are coroutines and this is used to express asynchr…
·adam.nels.onl·
Maybe Everything Is a Coroutine - Adam Nelson
[1hr Talk] Intro to Large Language Models
[1hr Talk] Intro to Large Language Models
This is a 1 hour general-audience introduction to Large Language Models: the core technical component behind systems like ChatGPT, Claude, and Bard. What the...
·youtube.com·
[1hr Talk] Intro to Large Language Models
Metastable failures in the wild
Metastable failures in the wild
This paper appeared in OSDI'22. There is a great summary of the paper by Aleksey (one of the authors and my former PhD student, go Aleksey...
·muratbuffalo.blogspot.com·
Metastable failures in the wild
Review: Performance Modeling and Design of Computer Systems: Queueing Theory in Action
Review: Performance Modeling and Design of Computer Systems: Queueing Theory in Action
“the SEDA paper from SOSP 2001: “SEDA: An architecture for well-conditioned scalable internet services”. I love this paper, it defines and solves an important problem: “A service is well-conditioned if it behaves like a simple pipeline: as the offered load increases, the delivered throughput increases proportionally until the pipeline is full and the throughput saturates; additional load should not degrade throughput.” "
To make things more concrete, consider the SEDA paper from SOSP 2001: “SEDA: An architecture for well-conditioned scalable internet services”. I love this paper, it defines and solves an important problem: “A service is well-conditioned if it behaves like a simple pipeline: as the offered load increases, the delivered throughput increases proportionally until the pipeline is full and the throughput saturates; additional load should not degrade throughput.
·emptysqua.re·
Review: Performance Modeling and Design of Computer Systems: Queueing Theory in Action
Classic HCI demos
Classic HCI demos
A curated collection of HCI demo videos produced during the golden age from 1983-2002.
·jackrusher.com·
Classic HCI demos