Hacker News new | ask | show | jobs
by ALLTaken 1807 days ago
I missed the first part, but will check it out. I'm on sick leave and can't do anything anyway.

My main question so far is: Can you make use of the speed of Array-based languages, but save computation time, by compiling it into a solution-graph-assembly? Sorry, if my wording is to amateurish.

EDIT: What's the difference between symbolic computation, graph computation and array-based symbolic computation? I mean they have different internal representations due to semantics, but look alike mostly.

Would it be possible to "generate" an "optimal" internal structure for an array-based symbolic language like APL, based on the input?

3 comments

For your convenience, part 1: https://mathspp.com/blog/lsbasi-apl-part1

I don't know if your wording is too amateurish because you are using lingo outside of my knowledge. Does "make use of the speed of array-based language, but save computation time by compiling" refer to using an array language that is compiled? [Co-dfns](https://github.com/co-dfns/co-dfns) compiles a dialect of APL, so that might be interesting to you.

APL is not at all a symbolic language. It's more like an imperative language with fancy builtins and pretty syntax.

My searches for "graph computation" lead me to think that's just another name for an AST (a very simple one, but one nonetheless), which is what the blog is creating. An implementation could certainly make optimized code for AST subtrees, but it's a lot of complexity.

Regarding your EDIT, I'd love to be able to answer, but alas, that is way out of my depth.

Something that's bothering me is your pairing of "symbolic" and "APL". As far as my (limited) knowledge goes, symbolic languages are those like Mathematica, where you can perform symbolic substitutions, for example. APL is not symbolic, it only uses "weird" characters as its primitives (its built-in functions).