[swift-evolution] Proposal: Rewrite Swift compiler in swift to get ideas for further language evolution.

Amir Michail a.michail at me.com
Sat Dec 19 18:39:01 CST 2015


> On Dec 19, 2015, at 7:37 PM, Colin Barrett <colin at springsandstruts.com> wrote:
> 
> 
>> On Dec 19, 2015, at 7:32 PM, Amir Michail <a.michail at me.com> wrote:
>> 
>> 
>>> On Dec 19, 2015, at 7:21 PM, Colin Barrett <colin at springsandstruts.com> wrote:
>>> 
>>> I’d recommend you read http://tratt.net/laurie/blog/entries/the_bootstrapped_compiler_and_the_damage_done, which has a number of rebuttals to what you’ve said below.
>>> 
>> 
>> That’s an interesting article but it doesn’t address the issue of whether compiler code is more like normal programming than compiler standard library code.
> 
> Perhaps I don’t understand what you mean, but the article gives two good reasons why compiler code is special.

Compiler standard library code tends to be very abstract and full of generics. Normal code isn’t like that.

> The first reason is that we understand a lot about how to design a compiler, much more than we understand about how to design other types of programs. The second follows:
> 
>> [C]ompilers are an atypical class of program. In essence, a compiler is a simple batch pipeline process. A program is read in and translated to a tree; a series of tree transformations are applied; and eventually one of those trees is saved out as some sort of binary data (e.g. machine code or bytecode). Most of the intermediate tree transformations calculate a relatively simple bit of information about the program and create a slightly modified tree based on it. A few calculations crop up time and time again, such as: maps from variables to scopes or types; and stacks to determine closures. Significantly, and unlike most programs in the real world, there is no interaction with users: the compiler knows all it needs about the outside world from the moment it is called.
> 
> Personally, I think the main reason not to rewrite the Swift compiler is that it would be a distraction from improving the Swift language and other associated tools.
> 
> -Colin
> 
>>>> On Dec 19, 2015, at 4:41 PM, Amir Michail via swift-evolution <swift-evolution at swift.org> wrote:
>>>> 
>>>> Compiler code is probably more typical of what most programmers write than library code and so would be ideal for suggesting further language evolution ideas.
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution at swift.org
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> 
>> 
> 



More information about the swift-evolution mailing list