Michael Bernstein writes about garbage collection, distributed systems history, and how programmers learn, drawing on research papers.
Commenters cite his real-time garbage collection post to argue such collectors exist, and praise his distributed systems archaeology talk from RICON 2013.
Warning: I am neither a skilled nor experienced programmer. I would say the kernel of programming languages is more practically something like C, assembly, or machine language. Kernel implies containing the core functionality, the building blocks. Van Roy's kernel language does seem to contain core ideas for ideal programming languages, even though it doesn't seem to translate well to existing hardware / machine language.
After reading a bit about it I started to think of it as pseudocode for programming languages, and I thought I'd share some results from my searching based on that idea [1].
"In terms of the kernel language itself, it is in fact its own programming language, a sort of "runnable pseudocode" that is executable in the Mozart/Oz platform."
Here's an interesting link I found by searching for database pseudocode [2]. This delves into the topic of "NoSQL", which might be helpful in your database basics research, but it also covers other database basics.
I am also not very skilled nor experienced with databases, but based on your request, one database that comes to mind for me is Berkeley DB. It is the building block for lots of other technologies, and is also considered one of the origins of the NoSQL concept. Here's a recent relevant discussion that probably made me think of it [3] (that and it is the basis for a distributed filesystem I'm studying). Also, check out the Wikipedia for it, and (maybe obvious to you already) searching site:news.ycombinator.com…
As I said in another thread recently, garbage collectors don't have to be of the stop-the-world, non-deterministic kind. It's perfectly possible to have real-time garbage collection [1], and the language I commonly work with supports soft real-time use with the default GC [2]. I'm no expert on garbage collection techniques, but what I have picked up is that most of the challenge lies in timing of the collections (when to run the GC) and how to deal with things like cycles.
[1] http://michaelrbernste.in/2013/06/03/real-time-garbage-collection-is-real.html
[2] http://nim-lang.org/docs/gc.html
Some of the best talks I've been fortunate enough to catch have been archaeological expeditions.
MRB's was the first I attended, at RICON 2013:
https://michaelrbernste.in/2013/11/19/distributed-systems-archaeology-part-one.html
I wasn't lucky enough to catch it live, but Bret Victor's classic "The Future of Programming" is worth watching if you haven't already:
http://worrydream.com/dbx/
And I might as well plug my own talk about the CS papers on logical time, not nearly on the caliber of the above:
https://youtu.be/b_swtL5bxJg
If you are in for the hype, it might be tiresome. Once you mastered the tech, it goes out of fashion.
If you try to be in for a new perspective, it might be useful, since 'Everything is a tradeoff' (tm ;)[1]. Currently I evaluate tradeoffs between speed, readability and maintainability.
In case of Go, I'm also interested in how someone like ken designs a language today.
[1] http://michaelrbernste.in/2013/11/13/the-only-sure-thing-in-computer-science.html
Already discussed in 2017[1] and 2014[2]. Blog post overview at [3].
[1] https://news.ycombinator.com/item?id=14823054
[2] https://news.ycombinator.com/item?id=8028777
[3] https://michaelrbernste.in/2013/06/12/matter-anti-matter.html
This is a beautiful result that I've written up and spoken about a few times - http://michaelrbernste.in/2014/02/24/papers-we-love-garbage.html - it's surprisingly deep and foments a deep intuition that may developers have.