digitalmars.D.learn - Development of the foundation of a programming language
- leikang (4/4) Sep 12 2021 I want to contribute to the development of the dlang language,
- max haughton (3/7) Sep 12 2021 Yes. If you make a PR it should be and will be judged based on
- leikang (4/11) Sep 12 2021 Are there any recommended books or videos to learn about the
- rikki cattermole (4/7) Sep 12 2021 The classic book on compilers that Walter recommends is the dragon book.
- max haughton (26/34) Sep 13 2021 The dragon book is really really showing it's age these days so I
- Elronnd (2/3) Sep 13 2021 In fairness, dmd doesn't use SSA either
- max haughton (2/6) Sep 13 2021 That's not a good thing.
- Elronnd (6/13) Sep 13 2021 No, but if the OP's goal is to contribute to dmd, learning SSA
- max haughton (8/23) Sep 13 2021 The backend is not where our efforts should be going. There is
- Dennis (12/15) Sep 13 2021 Check out this video: [DConf 2016 Day 2 Keynote: Spelunking D
- leikang (2/17) Sep 13 2021 Thanks!
- Paul Backus (10/14) Sep 13 2021 In addition to what others have said: there are many ways you can
I want to contribute to the development of the dlang language, but I feel that I am insufficient, so I want to ask the big guys, can I participate in the development of the Dlang language after learning the principles of compilation?
Sep 12 2021
On Monday, 13 September 2021 at 00:53:06 UTC, leikang wrote:I want to contribute to the development of the dlang language, but I feel that I am insufficient, so I want to ask the big guys, can I participate in the development of the Dlang language after learning the principles of compilation?Yes. If you make a PR it should be and will be judged based on the code and only the code, not where or who it came from.
Sep 12 2021
On Monday, 13 September 2021 at 03:00:07 UTC, max haughton wrote:On Monday, 13 September 2021 at 00:53:06 UTC, leikang wrote:Are there any recommended books or videos to learn about the principles of compilation? What else should I learn besides the principles of compilation?I want to contribute to the development of the dlang language, but I feel that I am insufficient, so I want to ask the big guys, can I participate in the development of the Dlang language after learning the principles of compilation?Yes. If you make a PR it should be and will be judged based on the code and only the code, not where or who it came from.
Sep 12 2021
On 13/09/2021 3:21 PM, leikang wrote:Are there any recommended books or videos to learn about the principles of compilation? What else should I learn besides the principles of compilation?The classic book on compilers that Walter recommends is the dragon book. https://smile.amazon.com/Compilers-Principles-Techniques-Tools-2nd-dp-0321486811/dp/0321486811 (D Language Foundation is a charity Amazon Smile recognizes).
Sep 12 2021
On Monday, 13 September 2021 at 04:08:53 UTC, rikki cattermole wrote:On 13/09/2021 3:21 PM, leikang wrote:The dragon book is really really showing it's age these days so I would highly recommend getting a copy but not reading it fully. "Engineering a compiler" is much better pedagogically. The dragon book barely mentions SSA for example, although the sections they did properly bother to update towards the end are quite interesting. "Crafting interpreters" is quite good, I recommend it for learning how to actually write a parser without getting bogged down in totally useless theory. Stephen Muchnick's "Advanced Compiler Design and Implementation" is *the* bible for optimizations, but uses a very weird unimplemented language so be careful for bugs. "Optimizing Compilers for Modern Architectures: A Dependence-based Approach" is the only book I'm aware of that actually covers even the beginnings of modern loop optimizations thoroughly. Even this however is still somewhat set back by it being written 20 years ago, the principles are the same but the instinct is not i.e. memory latency is worse, ILP is much better. What all of these books have in common, by the way, is that they were all written at a time when it was assumed that x86 would go the way of the dodo. So there is a somewhat significant deviation from "theory" and practice in some parts as (say) x86 SIMD is quite different from how the authors of the aforementioned book expected the world to go.Are there any recommended books or videos to learn about the principles of compilation? What else should I learn besides the principles of compilation?The classic book on compilers that Walter recommends is the dragon book. https://smile.amazon.com/Compilers-Principles-Techniques-Tools-2nd-dp-0321486811/dp/0321486811 (D Language Foundation is a charity Amazon Smile recognizes).
Sep 13 2021
On Monday, 13 September 2021 at 11:40:10 UTC, max haughton wrote:The dragon book barely mentions SSA for exampleIn fairness, dmd doesn't use SSA either
Sep 13 2021
On Tuesday, 14 September 2021 at 03:19:46 UTC, Elronnd wrote:On Monday, 13 September 2021 at 11:40:10 UTC, max haughton wrote:That's not a good thing.The dragon book barely mentions SSA for exampleIn fairness, dmd doesn't use SSA either
Sep 13 2021
On Tuesday, 14 September 2021 at 03:24:45 UTC, max haughton wrote:On Tuesday, 14 September 2021 at 03:19:46 UTC, Elronnd wrote:No, but if the OP's goal is to contribute to dmd, learning SSA wouldn't be very helpful beyond a general acclimation to compiler arcana. (Unless they wish to add SSA to dmd--a worthy goal, but perhaps not the best thing to start out with.)On Monday, 13 September 2021 at 11:40:10 UTC, max haughton wrote:That's not a good thing.The dragon book barely mentions SSA for exampleIn fairness, dmd doesn't use SSA either
Sep 13 2021
On Tuesday, 14 September 2021 at 05:06:01 UTC, Elronnd wrote:On Tuesday, 14 September 2021 at 03:24:45 UTC, max haughton wrote:The backend is not where our efforts should be going. There is way too much work that needs doing above it to motivate working on the backend. The backend's design for the most part is extremely simple just buried under 40 years of code. Besides, there's more to life than dmd, everything else is SSA at least some point in compilation (i.e. GCC isn't SSA all the way down but GIMPLE is).On Tuesday, 14 September 2021 at 03:19:46 UTC, Elronnd wrote:No, but if the OP's goal is to contribute to dmd, learning SSA wouldn't be very helpful beyond a general acclimation to compiler arcana. (Unless they wish to add SSA to dmd--a worthy goal, but perhaps not the best thing to start out with.)On Monday, 13 September 2021 at 11:40:10 UTC, max haughton wrote:That's not a good thing.The dragon book barely mentions SSA for exampleIn fairness, dmd doesn't use SSA either
Sep 13 2021
On Monday, 13 September 2021 at 03:21:37 UTC, leikang wrote:Are there any recommended books or videos to learn about the principles of compilation? What else should I learn besides the principles of compilation?Check out this video: [DConf 2016 Day 2 Keynote: Spelunking D Compiler Internals -- Walter Bright](https://www.youtube.com/watch?v=bNJhtKPugSQ) Just browsing [dmd's source code](https://github.com/dlang/dmd/tree/master/src/dmd#readme) and watching [dmd's Pull Request queue](https://github.com/dlang/dmd/pulls) is a good way to get familiar with the code and see what a bug fix looks like. Try to start with something small, like error message improvements or [refactorings listed in the contributing guide](https://github.com/dlang/dmd/blob/master/CONTRIBUTING.md# md-best-practices). If you have any questions along the way, just ask them.
Sep 13 2021
On Monday, 13 September 2021 at 10:23:14 UTC, Dennis wrote:On Monday, 13 September 2021 at 03:21:37 UTC, leikang wrote:Thanks!Are there any recommended books or videos to learn about the principles of compilation? What else should I learn besides the principles of compilation?Check out this video: [DConf 2016 Day 2 Keynote: Spelunking D Compiler Internals -- Walter Bright](https://www.youtube.com/watch?v=bNJhtKPugSQ) Just browsing [dmd's source code](https://github.com/dlang/dmd/tree/master/src/dmd#readme) and watching [dmd's Pull Request queue](https://github.com/dlang/dmd/pulls) is a good way to get familiar with the code and see what a bug fix looks like. Try to start with something small, like error message improvements or [refactorings listed in the contributing guide](https://github.com/dlang/dmd/blob/master/CONTRIBUTING.md# md-best-practices). If you have any questions along the way, just ask them.
Sep 13 2021
On Monday, 13 September 2021 at 00:53:06 UTC, leikang wrote:I want to contribute to the development of the dlang language, but I feel that I am insufficient, so I want to ask the big guys, can I participate in the development of the Dlang language after learning the principles of compilation?In addition to what others have said: there are many ways you can contribute to D without needing to know anything about compiler internals. For example, you could fix one of the many [known bugs in the standard library][1], or improve the documentation. In general, there are more things that need to be done in D than there are people with the time to do them, so any contribution is valuable. [1]: https://issues.dlang.org/buglist.cgi?bug_status=NEW&bug_status=REOPENED&component=phobos&list_id=237469&resolution=---&version=D2
Sep 13 2021