3 ms·
It is Python in the sense that the solve_linear_system() function is unmodified. At first it runs with Python objects, and then it runs with LLVMCode objects.
by chubot 8y ago
It is Python in the sense that the solve_linear_system() function is unmodified. At first it runs with Python objects, and then it runs with LLVMCode objects.
It's a form of metaprogramming which some would call staged programming or multi-stage programming:
https://en.wikipedia.org/wiki/Multi-stage_programming https://en.wikipedia.org/wiki/Multi-stage_programming
- adamnemecek 8y agoIt’s not metaprogramming, it’s a program that outputs llvm ir. What about that is meta?
- chubot 8y agoSee the links I put here: https://news.ycombinator.com/item?id=19013437 https://news.ycombinator.com/item?id=19013437 The authors of all those systems call it metaprogramming, more or less. Metaprogramming is a very general term, and there many varieties of it. Once you get past the syntax and specific technologies, you'll see that many of these systems have a similar structure, and you could probably do a line-by-line port of solve_linear_system() to those systems. I think Scala LMS is probably the closest one.
- newen 8y agoMetaprogramming has a specific technical meaning that has to do with code that reads or generates code. Try not to parse the word metaprogramming itself.