Skip to main content
22 votes

What are some techniques for faster, fine-grained incremental compilation and static analysis?

What are some of these techniques used by language servers? I can speak to the "Roslyn" C# compiler as I was on the design and implementation team for it. Briefly: Lexical and grammatical ...
Eric Lippert's user avatar
  • 3,459
5 votes
Accepted

Can you represent a language with a group with a small/simple generator set?

There is a notion studied in computability theory and category theory. A partial combinatory algebra (PCA) is a set $A$ equipped with a binary partial operation $A \times A \rightharpoonup A$, written ...
Trebor's user avatar
  • 166
4 votes

What are some techniques for faster, fine-grained incremental compilation and static analysis?

TL;DR: Lazy, on-demand, pull resolution. You already mentioned salsa, its README mentions that it was inspired from adapton and glimmer. The key idea behind salsa is to switch things up: pulling ...
Matthieu M.'s user avatar
  • 3,038
4 votes

What are some techniques for faster, fine-grained incremental compilation and static analysis?

This sounds like something e-graphs could be good for. An e-graph is an intermediate representation in which nodes (representing program terms) are grouped together into "e-classes" by ...
kaya3's user avatar
  • 19.7k
3 votes

What are some techniques for faster, fine-grained incremental compilation and static analysis?

Cache invalidation of all state Consider that the first compiler of this language has no caching facilities. That is, it doesn't remember anything. In this case it will have to recompile everything ...
André L F S Bacci's user avatar
3 votes

Can you represent a language with a group with a small/simple generator set?

Zot Based on the comments, I'm assuming you don't really want groups, but any set that could be "generated" in some way. A minimal example is the esolang Zot. Zot is based on SKI combinator ...
user23013's user avatar
  • 2,510
3 votes
Accepted

Supporting a statically-typed language in an IDE?

The easiest way to provide a meaningful IDE integration for any language these days is to write an LSP server for it. Pretty much any IDE have a support for LSP, including type hints. There is no need ...
SK-logic's user avatar
  • 1,310
2 votes

What are some techniques for faster, fine-grained incremental compilation and static analysis?

One common difficulty with incremental compilation is that debug information usually describes code locations as line numbers within a source file. Thus, even if only a tiny bit of the source code ...
supercat's user avatar
  • 1,812
2 votes

Techniques for resilient parsing in the face of mismatched brackets?

Use newlines and indentation as a hint LISP and other languages use punctuation as the ultimate decider of nesting and statement breaks, but there's still a convention for indentation which more or ...
tarzh's user avatar
  • 3,924
1 vote

How does a multi compiler programming language receive editor support?

There are several things an IDE needs to know to give rich support to the programmer: The syntax of the language - keywords, parsing rules, etc The semantics of the language - for instance, its error ...
IMSoP's user avatar
  • 2,428

Only top scored, non community-wiki answers of a minimum length are eligible