350 rub
Journal Achievements of Modern Radioelectronics №2 for 2016 г.
Article in number:
A general model for extended programming languages support in integrated development environments
Keywords:
general model of extended language service
Language Service
Microsoft Visual Studio
IntelliSense
Fortran 2003
FRIS
Fortran Intelligent Solutions
Authors:
I.S. Ratkevich - Employee, RFNC-VNIIEF (Sarov). E-mail: ratkevichis@gmail.com
Abstract:
The main activity of the programmer is an implementation of computer programs for solution of problems in a specific subject area or areas. As a rule, an integrated development environment (IDE) is used for implementation of program algorithms in specific pro-gramming language. A developer is using the text editor of IDE in the most part of its working time. It is important to note that most IDEs focused on providing assistance to the programmer in the process of writing a program to speed up its work and to reduce the errors number. Such kind of assistance includes:
providing contextual help for element of a programming language;
displaying help about procedure interface including description of its formal arguments in procedure call;
providing different word completion lists including type members list.
One of the most widespread IDEs in Windows Operation System is Microsoft Visual Studio (VS). The listed earlier kinds of assistance are the basis of IntelliSense technology. The Language Service is responsible for implementing IntelliSense features.
The basic support of programming language is such implementation of Language Service that provides information for user, which could be directly taken from program text analysis.
The extended support of programming language is such implementation of Language Service that beyond the basic support provides the meaningful description for every element of programming language and mechanisms for achieving such kind of information from external data sources.
A requirements analysis for Language Service that providing extended support of programming language, in particular for Fortran, al-lowed to develop a general model of a Language Service for extended support of programming language that is equally applied for any IDE and for any programming language.
A general model consists of five key blocks.
The IDE integration block contains implementation of program interfaces that is needed for interacting with IDE. It-s responsible for subscription of Language Service for text editing events and for providing corresponding responses.
The Analysis block is responsible for accomplishing lexical, syntactic and semantic analysis. It gathers all needed information about the elements of a programming language and puts it into the recognized elements storage block. The second task of this block is to provide information for syntax highlighting of edited text.
The Recognized elements storage block is like a database of all elements needed for the Language Service operation. In general case, it is kind of a symbol table. The storage block could be filled from two sources: from analysis block, as a result of analysis of a source files, and from XML operation block, in the case of using model of API (Application Programming Interface) for any program libraries.
The XML operation block performs two functions. Firstly, it allows saving the content of programming projects as XML files for de-scription of API and documentation comments. Secondary, it allows restoring the content of programming projects from their XML models.
The Elements view model block is a link, a kind of adaptor for elements of storage block to their representation needed by IDE inte-gration block. Thus, recognized elements may contain some information that is not necessary to IntelliSense technology features, or on the contrary, does not contain some needed information. The elements view model is playing this interconnection role. It contains data types that are wrappers for elements of storage block, which fulfils requirements of the IDE integration block. There is also implemented various functions of filtering and selecting of different kinds necessary information.
The proof of operability of proposed general model is given, on example of comparison FRIS with existing language services. The model that is used in FRIS provides its significant advantage over other language services.
Pages: 187-194
References
- ISO. ISO/IEC 1539-1:2004 Informationtechnology. Programminglanguages. Fortran. Part 1: BaseLanguage. P. 569.
- UsingIntelliSense; http://msdn.microsoft.com/en-us/library/hcw1s69b(v = vs.80).aspx
- LanguageServices;http://msdn.microsoft.com/en-us/library/bb165099.aspx
- MichaelSorens; TamingSandcastle: A.NETProgrammer\'sGuidetoDocumentingYourCode; https://www.simple-talk.com/dotnet/.net-tools/taming-sandcastle-a-.net-programmers-guide-to-documenting-your-code/
- LambertMSurhone, MariamTTennoe, SusanFHenssonow. Doxygen. BetascriptPublishing. 2010 168 s.
- LanguageServiceInterfaces, http://msdn.microsoft.com/en-us/library/bb164598(v = vs.80).aspx
- Akho A., Lam M., Seti R., Ulman D. Kompiljatory: principy, tekhnologii i instrumentarijj. Izd. 2-e / Per. s angl. M.: Viljams. 2008 1184 s.
- Ratkevich I.S., Bartenev JU.G., Kasatkin S.S. JAzykovojj servis FRIS dlja ehffektivnojj razrabotki Fortran-prilozhenijj // Trudy KHVMezhdunar. konf. «Supervychislenija i matematicheskoe modelirovanie» / Pod red. R.M. SHagalieva. g. Sarov: FGUP «RFJAC-VNIIEHF». 2015. S. 385−395.
- CreatingandUsingIntelliSenseCodeSnippets. https://msdn.microsoft.com/en-us/library/ms165392(v = vs.80).aspx