4 ms·
I would say both statements are justified. Transitive property being what it is
by jbottt 11y ago
I would say both statements are justified. Transitive property being what it is
- chubot 11y agoI think you mean "symmetric" rather than "transitive", and the "is a" relation isn't symmetric. (We know this from OOP -- i.e. the Liskov substitution principle.) A database is an interpreter because it has a lexer, parser, byte code compiler, optimizer, interpreter loop, etc. It also has a storage layer (i.e. the B-tree implementation, paging, etc.). A compiler (like javac) or interpreter isn't a database because it doesn't have a storage layer. Even a "functional database" has to have a storage layer!
- chipsy 11y agoOnce you add IDE and REPL support (Which Scala does) you need a storage layer as an optimization. Odersky spends most of the lecture time detailing resulting performance goals and effects on internals to support these features. This leads him towards a normal-form topology to minimize data duplication, of course, which is why he gave it the title "Compilers are Databases".
- deleted 11y ago[deleted]