When writing code in a modern programming language many people expect to have access to certain tools and utilities, called language features, e.g. hover and diagnostics. Hover shows data types and function definitions etc., when the mouse hovers over parts of the code and diagnostics shows error messages. Encore is a new programming language that is being developed at Uppsala University as a part of a research project called Upscale. Upscale is a collaboration between various universities within the EU, with the goal of developing new technologies focused on programming that scales over many cores. Currently Encore is missing a lot ofthe common language features. An implementation would make developing in Encore a more efficient and enjoyable experience. This report will describe the implementation of some language features using the open standard called language server protocol. Implementing all of its features is a large project, as such the focus of the project is developing a base that can be built upon. The result was a foundation for language features in Encore. The system has a good response time even for large input data, is crash safe and is something that the Encore team can continue to work on. However, we found that the Encore compiler was not built with this project in mind as it lacked certain features, something that can be improved upon / När man skriver kod i ett modernt programmeringsspråk förväntar man sig att det finns vissa hjälpmedel och verktyg, så kallade språkfunktioner, t.ex. hover och diagnostik. Hover visar t.ex. datatyper eller funktionsdefinitioner när man håller muspekaren över ett kodstycke och diagnostik visar fel i koden. Encore är ett nytt programmeringsspråk som utvecklas på Uppsala Universitet som är en del av det gemensamma forskningsprojektet Upscale. Upscale är ett samarbete mellan flera universitet inom EU med målet att utveckla nya tekniker inom programmering som ska skala över många kärnor. Encore saknar i dagsläget stöd för många vanliga språkfunktioner. En implementation av dessa språkfunktioner skulle effektivisera utveckling i Encore och göra det till en behagligare upplevelse. Denna rapport kommer beskriva implementationen av stöd för språkfunktioner med hjälp av den öppna standarden language server protocol. Implementation av alla dess funktioner är ett stort arbete, således är projektets fokus att skapa en grund som kan byggas vidare på. Resultatet blev en grund för språkfunktioner i Encore. Systemet har bra responstid även för stora indata, är väl kraschsäkrat och är något som Encore-teamet kan bygga vidare på. Vi fann dock att Encore-kompilatorn inte utformad med detta projekt i åtanke då den saknade viss funktionalitet, något som kan förbättras.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:uu-353969 |
Date | January 2018 |
Creators | Björklund, Filip, Gustafsson, Christoffer, Gådin, Valter, Olofsson, Andreas |
Publisher | Uppsala universitet, Institutionen för informationsteknologi, Uppsala universitet, Institutionen för informationsteknologi, Uppsala universitet, Institutionen för informationsteknologi, Uppsala universitet, Institutionen för informationsteknologi |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | Självständigt arbete i informationsteknologi ; 2018-011 |
Page generated in 0.002 seconds