This week I found myself digging through the code of c4, an implementation of C “in four functions”, by Robert Swierczek. I remember coming across c4 when it was released ten years ago. It got me excited: hey, C in four functions, that means it’s easy to understand right?
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.
Decision Intelligence: What Is It and Why Do You Need It?
Organizations are increasingly turning to this relatively new field combining data science, decision theory and AI to augment and improve decision-making.
The Dynix Automated Library System was a popular integrated library system, with a heyday from the mid-1980s to the late-1990s. It was used by libraries to replace the paper-based card catalog, and track lending of materials from the library to patrons.
IPFS Gateway acts as a bridge between traditional HTTP clients and IPFS. Through the gateway, users can download files, directories and other IPLD data stored in IPFS as if they were stored in a traditional web server.
Jackson Annotations with Examples. n this article we will explore few important annotations like JsonProperty, JsonFormat, JsonIgnore, JsonIgnoreProperties, JsonPropertyOrder, JsonRawValue, JsonCreator, JsonRootName, JsonValue, JsonAnyGetter, JsonSetter, JsonGetter.
A humble Bluetooth device has successfully connected to a satellite in orbit
Hubble Network recently announced that it has achieved something many believed to be impossible: it established a Bluetooth connection directly to space, making it the first company...
The more you practice creating diagrams, the better you'll become at distilling complex systems into visual representations that everyone can understand.
As with any ageing blog, _some_ of my outbound links are hitting either 404s or domains that are no longer active.
It's understandable given that my blog is ar…
By Francesco Bertolaccini You’ve reached computer programming nirvana. Your journey has led you down many paths, including believing that God wrote the universe in LISP, but now the truth is …
NASA Is Now Tasked With Developing A Lunar Time Standard, Relativity Or Not
A little while ago, we talked about the concept of timezones and the Moon. It’s a complicated issue, because on Earth, time is all about the Sun and our local relationship with it. The Moon a…
You might be under the impression that machine learning costs thousands of dollars to work with. That might be true in many cases, but there’s more to machine learning than you might think. F…