{"id":579283,"date":"2019-04-15T20:20:29","date_gmt":"2019-04-16T03:20:29","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-project&p=579283"},"modified":"2020-11-12T13:46:33","modified_gmt":"2020-11-12T21:46:33","slug":"bosque-programming-language","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/bosque-programming-language\/","title":{"rendered":"Bosque Programming Language"},"content":{"rendered":"
The Bosque Programming Language project is a ground up language & tooling co-design effort focused on is investigating the theoretical and the practical implications of:<\/p>\n
Compiler intermediate representations (IRs) are traditionally thought of, and designed with, a specific source language (or languages) in mind. Their historical use has primarily been as an intermediate step in the process of lowering a source language program, with all of the associated syntactic sugar, into a final executable binary. However, over time they have become increasingly important in supporting program analysis and IDE tooling tasks. In these scenarios choices which were did not matter in the context of the compilation workflow can have major negative impacts.<\/p>\n
In the Bosque project we ask the question of what happens if the IR is designed explicitly to support the rich needs of automated code reasoning, IDE tooling, etc. With this novel IR first perspective we are exploring a new way to think about and build a language intermediate representation and tools that utilize it. Our initial experiments show that this empowers a range of next-generation experiences including symbolic-testing (opens in new tab)<\/span><\/a>, enhanced fuzzing, soft-realtime compilation with stable GC support (opens in new tab)<\/span><\/a>, API auto-marshaling, and more!<\/p>\n Many features that make the Bosque IR amenable for automated reasoning involve simplifying and removing sources of irregularity in the semantics. These regularizations<\/em> also simplify the task of understanding and writing code for the human developer. Inspired by this idea the Bosque project is building a new regularized programming language<\/em> (opens in new tab)<\/span><\/a> that takes advantage of the features of the IR.<\/p>\nRegularized Programming<\/h3>\n