Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
arcfide
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
21 ms
·
121.
▲
by
arcfide
10y ago
Respectfully, the APL of today is not the APL of the 80's. APL is tremendously well suited to many of the problems that face other programming languages, such as the parallel programming usability problem. Modern dfns based APL has inc
122.
▲
by
arcfide
10y ago
It is very common for large APL projects to require only a single person to maintain most of the source for a large portion of its life. While this doesn't help the bus factor much, it's not the red-flag it would be in other langu
123.
▲
by
arcfide
10y ago
As the author of this code in question, I'd like to make the offer to the Hacker News community and anyone at large. I'll do a live screen cast demonstration for interested persons and walk you through the entire compiler in 30 mi
124.
▲
by
arcfide
10y ago
So, as I mention above, part of the intentional design of that code snippet is to "feel" like APL. The fact that you went to that somehow is a good thing, actually. While it might have seemed as equally ugly, if it felt in the sam
125.
▲
by
arcfide
10y ago
They have exceptionally meaningful names, they're just not English ones.
126.
▲
by
arcfide
10y ago
Congratulations, you just listed some of the main APL primitives. They've been standardized and given standard names, even in Unicode, since the 70's or 80's? Sorry, I couldn't resist. :-)
127.
▲
by
arcfide
10y ago
By keeping the code as visible (read, small) as possible, I see more code and can better reason at a macro level. To scale this down into the micro level of dealing with individual compiler passes, I replace all the traditional programming
128.
▲
by
arcfide
10y ago
Don't complain that Chinese is ugly and unreadable just because you speak English as your native tongue. Technically, the above is a snippet of C++ put into an APL variable "rth" but there's so much more to it than that,
129.
▲
by
arcfide
10y ago
Did the above code snippet remind you of APL or was it something else? This is actually a bit of an important "research" oriented question to me and is actually relevant to the design of the Co-dfns compiler.
130.
▲
by
arcfide
10y ago
At the heart you are absolutely right. We're after simplicity and clarity. However, I have found that "small" really does make a difference, especially if you push yourself to be small on the macro, rather than micro level. I
131.
▲
by
arcfide
10y ago
Except that your meta DSL probably isn't able to solve the problem that this compiler is solving, which is putting an entire compiler natively onto the GPU in a way that the code is actually maintainable in a "native GPU" ver
132.
▲
by
arcfide
10y ago
Features is the wrong metric. There is no good quantitative measure, because what matters at the end is the degree of effectiveness at addressing a human need, which is always fuzzy at the heart of it, even though we may try to abstract tha
133.
▲
by
arcfide
10y ago
I am very inspired by Dijkstra's high level ideas on programming. Importantly, one of the fundamental assumptions of Dijkstra was that you could actually understand your code base and reason about it. The creation of excessive abstract
134.
▲
by
arcfide
10y ago
There's a specific reason I made that switch, which for a long time had appeared to be a silly change. Eventually I realized that "penv" as a name was so different from the rest of the naming conventions that it was causing c
135.
▲
by
arcfide
10y ago
Actually, most of those 750 LoC is C++ code for the runtime, written in a style to match the semantic density of the rest of the code, as well as code for calling off to the various C compilers on various operating systems. The core compile
136.
▲
Co-dfns APL Compiler Release 2016.8.1
(github.com)
16 points
by
arcfide
10y ago
|
0 comments
137.
▲
by
arcfide
10y ago
This is one of a few GPU capable compilers currently targeting APL as a source language. I am the implementer for another system, called Co-dfns, which is designed to integrate GPU compilation into Dyalog APL. A third system is the APEX com
138.
▲
by
arcfide
12y ago
Dyalog APL is commercial, but they are open-source friendly. I work with and am sponsored by them, and we are actively working to open-source as much as is possible provided that we can continue to support the projects. Similarly, they rele
139.
▲
by
arcfide
12y ago
Yes, this is possible through SALTing. It allows objects in the Workspace to be associated with human readable files in the file system, which Git can maintain.