Totally agree, ML-style languages are great for writing compilers.
I tried to get into various CAD applications at various points in time and never managed to "get it". It was mostly about the interface, you just have to invest a lot of time (more than I was willing to spend) to get…
OpenSCAD is decently reliable up to a certain amount of objects/vertices. Once I reach a limit rendering becomes too slow and sometimes makes OpenSCAD crash. What I ended up doing is to model individual parts (which is…
Speaking of SSA and optimizations, I just remembered that Andy Wingo (core contributor to Guile scheme) has a treasure trove of great articles, e.g. a fun intro to SSA [1] or CPS as used in Guile [2]. His blog is…
Much of the frontend is pretty much the same: parsing, semantic analysis, type checking. LLLVM mostly comes into play when generating the code. Instead of generating assembbler or opcodes directly, you call into LLVM to…
If you are interested in a printed version of a great beginner's compiler book, I can highly recommend Andrew W. Appel's "Modern Compiler in C". There are also versions of the book written for SML or Java. I have read…
This is not necessarily a language-level decision (except for GC, it helps in this case spread out the deallocations when using incremental GC). You just have to be aware what happens in the destructor when you manually…
Modern architectures really necessitate a good understanding of the instruction pipeline and caches to squeeze out the best performance. If I remember correctly, Python's hashtables are initialized with 8 buckets that…
And also check out this paper comparing reference counting and GC, and the accompanying discussion on LtU. http://lambda-the-ultimate.org/node/2552 (Although I think the paper has problems and bias)
As far as I know ARC (like manual memory managenent) can lead to release cascades that can also cause application delays in games eg. Something you have to watch for. Malloc() and free() and equivalents do quite a bit…
Smalltalk is a little shrewd in some ways as outlined here. Self has already been mentioned as a great alternative (and the related papers are amazing IMO and influence most modern JITs). But there are some other really…
Java probably won because of its C-inspired syntax. At that point smalltalk was falling behind and C++ started to take off. To me Java was always meant as a better C++. At least that is my guess. A lot of the people…
Totally agree, ML-style languages are great for writing compilers.
I tried to get into various CAD applications at various points in time and never managed to "get it". It was mostly about the interface, you just have to invest a lot of time (more than I was willing to spend) to get…
OpenSCAD is decently reliable up to a certain amount of objects/vertices. Once I reach a limit rendering becomes too slow and sometimes makes OpenSCAD crash. What I ended up doing is to model individual parts (which is…
Speaking of SSA and optimizations, I just remembered that Andy Wingo (core contributor to Guile scheme) has a treasure trove of great articles, e.g. a fun intro to SSA [1] or CPS as used in Guile [2]. His blog is…
Much of the frontend is pretty much the same: parsing, semantic analysis, type checking. LLLVM mostly comes into play when generating the code. Instead of generating assembbler or opcodes directly, you call into LLVM to…
If you are interested in a printed version of a great beginner's compiler book, I can highly recommend Andrew W. Appel's "Modern Compiler in C". There are also versions of the book written for SML or Java. I have read…
This is not necessarily a language-level decision (except for GC, it helps in this case spread out the deallocations when using incremental GC). You just have to be aware what happens in the destructor when you manually…
Modern architectures really necessitate a good understanding of the instruction pipeline and caches to squeeze out the best performance. If I remember correctly, Python's hashtables are initialized with 8 buckets that…
And also check out this paper comparing reference counting and GC, and the accompanying discussion on LtU. http://lambda-the-ultimate.org/node/2552 (Although I think the paper has problems and bias)
As far as I know ARC (like manual memory managenent) can lead to release cascades that can also cause application delays in games eg. Something you have to watch for. Malloc() and free() and equivalents do quite a bit…
Smalltalk is a little shrewd in some ways as outlined here. Self has already been mentioned as a great alternative (and the related papers are amazing IMO and influence most modern JITs). But there are some other really…
Java probably won because of its C-inspired syntax. At that point smalltalk was falling behind and C++ started to take off. To me Java was always meant as a better C++. At least that is my guess. A lot of the people…