Hess, Marcel and Kistler, Thomas (2020) Enhancing Dafny Support in Visual Studio Code. Other thesis, HSR Hochschule für Technik Rapperswil.
FS 2020-BA-EP-Kistler-Hess-Dafny Server Redesign (Fortsetzungsarbeit).pdf - Supplemental Material
Download (11MB) | Preview
Abstract
Dafny is a formal programming language to prove a program’s correctness. In a preceding bachelor thesis, a plugin for Visual Studio Code was created to access Dafny-specific static analysis features. The plugin communicates with a language server using Microsoft’s language server protocol, which standardizes communication between an integrated development environment (IDE) and a language server. The language server itself used to access the Dafny library, which features the backend of the Dafny language analysis, through a proprietary JSON-interface. In our preceding term project, the language server was integrated into the Dafny backend to render the JSON-interface obsolete.
This bachelor thesis continues the preceding term project and contains two major goals. First, the previously implemented prototype has to be improved in usability, stability and reliability. Second, a symbol table has to be implemented to facilitate the development of symbol-oriented functionality like Rename or AutoCompletion. The symbol table is supposed to open a wide range for further development.
A symbol table was created with an adaptive data structure. Every symbol contains information about its parent, its children and its declaration. This keeps navigation within the symbol hierarchy very simple. The implemented features GoToDefinition, Rename, CodeLens, HoverInformation and AutoCompletion benefit from the symbol table and are no longer required to analyze the code themselves and provide better results. The symbol table can be used for future extensions, such as AutoFormatting or CodeHighlighting. Apart from features based on the symbol table, pre-existing functionality was revisited as well to improve the overall software quality. The final product has been deployed to the Visual Studio Code marketplace and is publicly available.
Item Type: | Thesis (Other) |
---|---|
Subjects: | Area of Application > Development Tools Technologies > Programming Languages > C# Technologies > Programming Languages > Java Script Technologies > Frameworks and Libraries > .NET Technologies > Protocols |
Divisions: | Bachelor of Science FHO in Informatik > Bachelor Thesis |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Corbat, Thomas UNSPECIFIED Thesis advisor Hauser, Fabian UNSPECIFIED |
Date Deposited: | 19 Mar 2021 09:37 |
Last Modified: | 19 Apr 2021 07:15 |
URI: | https://eprints.ost.ch/id/eprint/874 |