Research output: Chapter in Book/Report/Conference proceeding › Conference contribution › peer-review
On development of static analysis tools for string-embedded languages. / Khabibullin, Marat; Grigorev, Semyon.
CEE-SECR 2015 - Proceedings of the 11th Central and Eastern European Software Engineering Conference in Russia. Association for Computing Machinery, 2015. 5 (ACM International Conference Proceeding Series; Vol. 22-23-October-2015).Research output: Chapter in Book/Report/Conference proceeding › Conference contribution › peer-review
}
TY - GEN
T1 - On development of static analysis tools for string-embedded languages
AU - Khabibullin, Marat
AU - Grigorev, Semyon
PY - 2015/10/22
Y1 - 2015/10/22
N2 - Some programs can produce string expressions with embedded code in other programming languages while running. This embedded code should be syntactically correct as it is typically executed by some subsystem. A program in Java language that builds and sends SQL queries to the database it works with can be considered as an example. In such scenarios, languages like SQL are called string-embedded and ones like Java { host languages. In spite of the fact such an approach of programs building is being replaced by alternative ones, for example by ORM and LINQ, string-embedding is still used in practice. Development and reengineering of the programs with stringembedded languages is complicated because the IDE and similar tools process the code embedded in strings as host language string literals and cannot provide the functionality to work with this code. To facilitate the development process, string-embedded code highlighting, completion, navigation and static errors checking would be useful. For the purposes of reengineering, embedded code metrics computation would be helpful. Currently existing tools to string-embedded languages support only operate with one host language and a fixed set of string-embedded ones. Their functionality is often limited. Moreover, it is almost impossible or requires a substantial amount of work to add a support for both new host and string-embedded language. Attempts to extend their functionality often result in the same problem. In this paper we present the platform which can be used for relatively fast and easy building of endpoint tools that provide a support for difeerent string-embedded languages inside diferent host languages. The tools built for T-SQL and arithmetic expressions language embedding in C# are demonstrated as the examples of how the platform can be used.
AB - Some programs can produce string expressions with embedded code in other programming languages while running. This embedded code should be syntactically correct as it is typically executed by some subsystem. A program in Java language that builds and sends SQL queries to the database it works with can be considered as an example. In such scenarios, languages like SQL are called string-embedded and ones like Java { host languages. In spite of the fact such an approach of programs building is being replaced by alternative ones, for example by ORM and LINQ, string-embedding is still used in practice. Development and reengineering of the programs with stringembedded languages is complicated because the IDE and similar tools process the code embedded in strings as host language string literals and cannot provide the functionality to work with this code. To facilitate the development process, string-embedded code highlighting, completion, navigation and static errors checking would be useful. For the purposes of reengineering, embedded code metrics computation would be helpful. Currently existing tools to string-embedded languages support only operate with one host language and a fixed set of string-embedded ones. Their functionality is often limited. Moreover, it is almost impossible or requires a substantial amount of work to add a support for both new host and string-embedded language. Attempts to extend their functionality often result in the same problem. In this paper we present the platform which can be used for relatively fast and easy building of endpoint tools that provide a support for difeerent string-embedded languages inside diferent host languages. The tools built for T-SQL and arithmetic expressions language embedding in C# are demonstrated as the examples of how the platform can be used.
KW - Approximation
KW - CFG
KW - Control Flow graph
KW - IDE
KW - Integrated development environment
KW - String-embedded language
UR - http://www.scopus.com/inward/record.url?scp=84976319530&partnerID=8YFLogxK
U2 - 10.1145/2855667.2855672
DO - 10.1145/2855667.2855672
M3 - Conference contribution
AN - SCOPUS:84976319530
T3 - ACM International Conference Proceeding Series
BT - CEE-SECR 2015 - Proceedings of the 11th Central and Eastern European Software Engineering Conference in Russia
PB - Association for Computing Machinery
T2 - 11th Central and Eastern European Software Engineering Conference in Russia, CEE-SECR 2015
Y2 - 22 October 2015 through 23 October 2015
ER -
ID: 48535393