Unanswered Questions

22 questions with no upvoted or accepted answers
15 votes
0 answers
470 views

What is the relationship between STG and RVSDG?

GHC is an optimizing Haskell compiler. Since Haskell is lazy and mutation is rare, control flow and data flow are often very closely aligned. Therefore, it is often most useful to think about ...
13 votes
0 answers
259 views

Why were OS/360 PL/I procedure calls so expensive?

In Guy Steele’s famous paper Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO, he describes the poor performance of ...
11 votes
0 answers
260 views

Where does Go's datetime formatting pattern come from? And why was it chosen?

Go's time formatting strings are uniquely idiosyncratic, and I have not seen any other language use this sort of system: It is based on the exact timestamp for ...
11 votes
1 answer
380 views

What's the state of the art for implementing effect handler systems?

Effect systems allowing locally introducing and eliminating effects have started to appear in (more) practical systems recently, but they've always had a reputation as being a major challenge to ...
10 votes
0 answers
254 views

What styles of interpreter are not well-supported by RPython?

The RPython toolchain translates interpreters to JIT compilers. The interpreter may be written in any style; the corresponding JIT compiler is defined by annotations on the main loops of the ...
9 votes
0 answers
149 views

What impact do type sigils have on programmers?

Some languages, such as BASIC (STRING$), Perl ($scalar, @array, ...
9 votes
0 answers
218 views

How can a compiler optimise persistent data structures to use mutable data structures "under the hood"?

Consider for a motivating example a copy-on-write array, which implements a persistent (i.e. immutable) array data type. As an optimisation at runtime, a reference counter can be used to avoid the ...
9 votes
0 answers
124 views

How to detect changes to definitions and their impacts?

I'm implementing the Language Server Protocol (LSP) for my language, and I'm having huge problems tracking updated definitions. 1. How to determine which files have been changed? lsp can only monitor ...
9 votes
0 answers
163 views

Extending Hindley Milner with (mutual) recursion

What's a good approach for extending Hindley Milner with mutual recursion without de-sugaring to let+fix+records? My thinking is (assuming no polymorphic recursion) Collect mutually recursive lets ...
8 votes
0 answers
131 views

How does GADTs as in Haskell-like languages compare to indexed families in dependent types?

In Haskell, GADTs are only indexed by types, while indexed families in DT are mainly indexed by terms. With the presence of without-K, it is hard to refute cases just by unifying type terms, while in ...
7 votes
0 answers
392 views

What do you mean by the ‘computational model’ of a programming language?

What do you mean by the ‘computational model’ of a programming language? Are ‘abstract machines’ such as Stack, RAM, and Warren Abstract Machine (WAM) examples of computational models? Is the ...
6 votes
0 answers
77 views

Is there a language where "everything is a dataframe"?

In APL, you don't need to write loops because scalar operations are automatically "broadcast" (mapped and zipped) across arrays. For example a grayscale image could be a 2D array, which is ...
6 votes
1 answer
306 views

Optimization algorithm using conditional invariants

I am looking for an optimization algorithm that would make use of invariants in regions of code. For example if (n == 0) f(n); should be changed to ...
5 votes
0 answers
209 views

Why has there been little recent work on GPU compiler phase optimization?

While GPU compiler phase optimization has been shown to improve performance significantly (e.g. https://link.springer.com/chapter/10.1007/978-3-319-75178-8_35), there has been very little follow-up ...
4 votes
0 answers
166 views

Do any languages provide arrays that are always powers of 2 in length?

In the early 1970s, I had university a co-op job at a place where one of the main languages used was like a glorified calculator. It provided two stacks, and all variables and operators were a single ...

15 30 50 per page