Transformations of Erlang programs based on complexity metrics
|
|
- Janice Daniel
- 5 years ago
- Views:
Transcription
1 Transformations of Erlang programs based on complexity metrics Thesises of the Doctoral Dissertation 2013 Roland Király Advisor: Dr. Horváth Zoltán Eötvös Loránd University, Faculty of Informatics H-1117 Budapest, Pázmány Péter sétány 1/C. PhD School of Computer Science Title of the PhD Program: Basics and methodology of informatics Leader of the PHD School: Dr. Benczúr András This research was supported by the European Union and the State of Hungary, co-financed by the European Social Fund in the framework of TÁMOP A/ National Excellence Program.
2 2 Introduction As the size and complexity of programs increase, the development (and the resource cost of development) has an ever increasing part consisting of testing, solving the difficulties arising during testing, and proving that the modification of source code does not change the program semantically. The cost (be it in work hour, human resources, etc.) of modifications in code does not solely depend on its amount, but its complexity also plays a significant role in it. Measuring complexity makes it possible to estimate testing and maintenance costs, both of which are an important factor of code development. The various methods of analyzing source code measure such properties, that help us get an idea about its structure, characteristics, and complexity. Based on the results obtained from such analysis we can give estimates about the cost of testing, developing, or modifying the code. The measure of software complexity can grade the programming style, usability, and the expected developmental costs. Comparably the relationship between various parts of code, exploration of the relationship between these measures and their interaction can give a more precise picture of the code forming the subject matter of the measurement. Based on this statement, in the theses we build a model, that we can use to examine the software measures, and the effect of code transformations through which automatic, source code quality improving transformations can be applied. Objectives Since the start of the research my goals were the following: 1. To find methods which make it possible to measure the complexity of, and can apply agile and simple transformations to large programs used even in industrial environments written in Erlang [32, 40], a language that supports the paradigms of shared programming, and behavioral patterns 2. To create a structured query language and its filters that are capable of measure complexity measures, with the help of which measuring Erlang source code complexity becomes easier and faster 3. To construct a complexity based analyzing algorithm, with the help of which during any phase of coding the change in complexity measures can indicate programming errors or inconsistencies, therefore the code development can be limited to pre-defined, clearly stated confines
3 3 4. To extend this query language with elements to implement automatic code transformations (transformational meta language), as well as creating an algorithm to run scripts written in this language, that provides the ability to automatically transform source code based on complexity measure. Antecedent of the choice of subject I started my research with the research team operating at the Faculty of Informatics at Eötvös Lóránd University that deals with refactoring Erlang programs, where there were plenty of code transformation steps developed, that I used in my work, and properly referred to and cited in my thesis. The results I can introduce in my thesis are based on my work in that research team. A prototype of the analyzing program built for transformations of Erlang code was made available to me, and I could develop further the data structure used by the analyzer to create the first version of my analyzing algorithm. This version was able to measure complexity, and later inspired many ideas to create the transformational language and the methods of querying this data. The methods and algorithms introduced in this thesis form the base of a program called RefactorErl [33], that is currently still under development, though already being used in industrial environment as a prototype software system, and is a grant application supported by ELTE IKKK, KMOP / and Ericsson Hungary. Antecedent of the research subject Functional programming languages, thus Erlang as well, contain several special program constructs, that are unheard of in the realm of object-oriented and imperative languages. The special syntactic elements make functional languages different, these attributes contribute to those being interesting or extraordinary, but also due to these, some of the known complexity measures are not, or only through modifications usable to measure code. This does not mean that complexity measures are not developed to these languages, but very few of the existing ones are generic enough to be used with any functional language [39, 35, 34] language-independently, therefore with Erlang as well, because most of these only work well with one specific language, thus have low efficiency with Erlang codes. For all of this I needed to define the measures of complexity that can be utilized with this paradigm, and create new ones as necessary.
4 4 There are tools for measuring software complexity, like Eclipse [41], or the software created by Simon, Steinbrückner and Lewerentz, that implements several complexity measures that help the users in measurement. The aim of the Crocodile [38] project is to create a program that helps to efficiently analyze source code, therefore it can be used quite well to makes measurements after code transformations. Tidier [13, 14] is an automatic source code analyzer, and transformer tool, that is capable of automatically correcting source code, eliminating the syntactic errors static analysis can find, but neither software/method uses complexity measures for source code analysis and transformation. This environment raised the demand for a complex and versatile tool, that is capable of measuring the complexity of Erlang codes, and based on these measurements localize as well as automatically or semi-automatically correct unmanageably complex parts. The methods used While making the collection of complexity measures and developing new ones, I researched the attributes of Erlang programs, and tried to find the complexity measures for every possible code construct that describe those properly. After managing the ones deemed important, with careful observation of the relationship between them I either introduced a new measure, or transformed the existing ones so that they could be used with Erlang language too. I defined the resulting measurement system with mathematical methods, and implemented each individually. Using the completed analyzer I validated every measure with various methods to assert the measurements are all proper ones. The results gained from this validation is detailed in my thesis. To measure the complexity, I created a high-level structured query language, and extended the analyzer with it. I analyzed the effect of various program transforming steps, and based on these I created the transformational programming language, that made writing transformational scripts possible and to automatically optimize source code. These scripts improve code quality based on complexity measures. The algorithm in the theses measuring structural complexity, the textual query language and its extension, the automatic transformational algorithm that runs the scripts, the automatic error-correcting methods, and the code complexity based errordetection, implemented in RefactorErl, are in their entirety my own work. Each of the theses were published in journals and presented at conferences as mentioned in the bibliography.
5 5 1 Thesis 1. - Developing and measuring metrics that can be used with Erlang language, and the creation of the query language While extending the semantic graph [8] in the analyzing algorithm of RefactorErl, I introduced a data structure, that can record the expected and the measured complexity measures of source code, and can mark the unmanageable/difficult code parts. With the modification of existing complexity measures, and making new ones, I created a complex measure system to calculate the complexity related attributes of Erlang, and of possibly every program construct it uses. Besides presenting the semantic graph, and its formal definition, I have detailed a low level language capable of traversing the graph with path expressions necessary to measure complexity measures. I devised a special structured query language to be able to access the semantic graph containing the processed source code on a higher abstraction layer of complexity measurements. MetricQuery Show for Type Show show metric Type module module function function Figure 1: The syntax of the query language I presented the syntax of this language, the possible queries it can define, the filters that can be used with it, and the merits of using them. Gyorsendezés show fun_return_points for function ({ a, quicksort,1}, { a, split,3}) sum Figure 2: Querying the return point of a function with the structured query language. The premise of the queries and the query language is that one can call, complexity measurement functions on the series of elements in the semantic graph of the processed source code. The runtime environment of the defined query language is coded in a functional language (Erlang), and provided an interface to run queries. The algorithm analyzing complexity is able to store the calculated complexity values, to reduce the resources needed to process more difficult analyzes. Storing the measures so, is an effective method, because it can track changes made to the source code and to recalculate automatically the complexity of only the modified
6 6 parts. This characteristic holds many possibilities. If the modification applied to the analyzed source code results in an unnecessary increase of complexity, it can highlight this complication, and also this attribute of the analyzer holds the possibility to apply automatic program transformations. Thesis 2. - Localizing complex code parts, and the effect of program transformations aimed at code refactoring on code quality I created an analyzer that reveals inadequate programming style or unmanageably complex program constructs during the whole lifecycle of the code using complexity measures describing the program. I devised a rule set, with which the analyzing processes in every measurements only perform on the sub-graph that directly was influenced by the transformational steps changing the code. The algorithm is also based upon the analysis of the semantic graph built from the source code (that, in this case, is naturally based on the measurements of structural complexity), but at this stage we can define default complexity measures, and these defaults are compared to the actual measured values of the code, therefore the differences can be indicated. The impact analysis of the transformations is theoretical, but based on conclusions, still, these statements are proven by running tests and interpreting the results on the implemented analyzing prototype. 2 Thesis 3. - Automatic source code transformation based on software complexity metrics, and the elaboration of refactoring transformational schemes. I created an algorithm measuring code complexity in Erlang programs, that provides automatic code transformations based on these measures. I created a script language, that can calculate the structural complexity of Erlang source codes, and based on the resulting outcome providing the descriptions of transformational steps. With the help of this language we can describe automatic code transformations that are based on code complexity measurements. I defined the syntax of the language that can describe the series of steps in these automatic code refactoring, that are complexity measurement based, and presented the principle of operation of the analyzer and run-time providing algorithm.
7 7 Query MetricQuery OptQuery OptQuery Opti Where Limit Opti optimize Transformation Transformation TransformationName TransformationName Params Params (Attr, ValueList) Where where Cond Cond Metric Rel CondValue Cond LogCon Cond Limit limit Int Figure 3: The syntax of transformational scripts. Besides the introduction of the syntax and use cases, I presented what results we can achieve using this language. The transformational language consists of sections, each of which has three parts. The first, starting with the keyword optimize, we instruct it which transformation and its parameters are we trying to use in the current step. optimize extract_fun (expr_type, case_expr) where max_depth_of_cases > 3 limit 2 optimize extract_fun where max_depth_of_cases > 3 and number_of_fun < 20 limit 3 Figure 4: The script performing the automatic transformation. In the second part, starting with the where label we can define conditions based on complexity measures, that specify which nodes take part in the transformational process. These conditions can relate to functions or module type nodes. This part runs the functions built into the algorithms, that analyze the whole source code, choose the appropriate graph nodes, and with those and the type of transformation it produces the parameters described in the optimize part that are necessary to complete a particular step, and furthermore, besides the collection of parameters, stop the running of scripts based on a customizable rule set.
8 References 8 The third part starting with the limit keyword controls the running of the scripts so, that this parameter limits the iteration step number. That is needed when the constrains in the where clause does not stop the transformational process. After defining and implementing the language, I created several scripts solving source code transformational problems that are based on complexity measures, and presented their run-time results, proving their usability. References [1] Roland Király: Results of complexity metric based automatic source code transformations. Annales Mathematicae et Informaticae 42 (2013) (accepted) [2] Tóth, M., Bozó, I., Horváth, Z., Kitlei, R., Király, R., Horpácsi, D., and Kőszegi, J.: RefactorErl: a source code analyser and transformer tool Poster at the High Speed Network Workshop 2011, Budapest, Hungary, May 2011 [3] Roland Király, Róbert Kitlei. Metric Based optimalization of functional source code. Annales Mathematicae et Informaticae 37 (2011) Pages: [4] István Bozó, Dániel Horpácsi, Zoltán Horváth, Judit Kõszegi, Roland Király, Róbert Kitlei, Máté Tejfel, Melinda Tóth,. Haladó technológiák szoftverrendszerek forráskódú elemzésére A RefactorErl hatékonyságának és felhasználói felületének továbbfejlesztése Az Ericsson Magyarország Kft megbízásából és támogatásával a KMOP / projekt keretében az ERFA támogatásával Tech report 2011 Ericsson Hungary [5] Király, R., Kitlei R.: Complexity measurments for functional code 8th Joint Conference on Mathematics and Computer Science (MaCS 2010) refereed, and the proceedings will have ISBN classification July 14-17, 2010 [6] Király, R., Kitlei R.: Implementing structural complexity metrics in Erlang. 10 ICAI th International Conference on Applied Informatics to be held in Eger, Hungary January 27-30, 2010 [7] Király, R. and Kitlei, R.: Implementing structural complexity metrics for Erlang Poster on the 8th International Conference on Applied Informatics, ICAI 2010, 2010 [8] Zoltán Horváth, László Lövei Tamás Kozsik, Roland Király, Melinda Tóth, Róbert Kitlei, Dániel Horpácsi, István Bozó. Extended semantic queries on Erlang programs and comprehensive testing of RefactorErl. Tech. Report Ericsson Hungary [9] Király Roland, Funkcionális programozási nyelvek EKF TTK TAMOP oldal.
9 References 9 [10] Zoltán Hernyák, Roland Király. Teaching programming language in grammar schools. Annales Mathematicae et Informaticae 36 (2009) Pages: [11] Horváth, Z., Lövei, L., Kozsik, T., Kitlei, R., Víg, A., Nagy, T., Tóth, M., and Király, R.: Modeling semantic knowledge in Erlang for refactoring. In Knowledge Engineering: Principles and Techniques, Proceedings of the International Conference on Knowledge Engineering, Principles and Techniques, KEPT 2009, volume 54(2009) Sp. Issue, Studia Universitatis Babeş-Bolyai, Series Informatica, pages 7 16, Cluj-Napoca, Romania, Jul 2009 [12] Lövei, L., Tóth, M., Horváth, Z., Kozsik, T., Király, R., Kitlei, R., Bozó, I., Hoch, C., and Horpácsi, D.: Reengineering legacy Erlang code by refactoring. Central Europen Functional Programming Summer School, May [13] Thanassis Avgerinos, Konstantinos F. Sagonas Cleaning up Erlang code is a dirty job but somebody s gotta do it. Erlang Workshop 2009: 1-10 [14] Konstantinos F. Sagonas, Thanassis Avgerinos Automatic refactoring of Erlang programs. PPDP 09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming 2009: [15] Zoltán Horváth, László Lövei Tamás Kozsik, Roland Király, Melinda Tóth, Róbert Kitlei, Dániel Horpácsi, István Bozó. Complexity Metrics and simple semantic queries for Erlang. Report Ericsson Hungary [16] Tamás Kozsik, Zoltán Csörnyei, Zoltán Horváth, Roland Király, Róbert Kitlei, László Lövei, Tamás Nagy, Melinda Tóth, Anikó Víg Use Cases for Refactoring in Erlang. In Central European Functional Programming School, volume 5161/2008, Lecture Notes in Computer Science, pages , (2008) [17] R. Kitlei, L. Lövei, M Tóth, Z. Horváth, T. Kozsik, T. Kozsik, R. Király, I. Bozó, Cs. Hoch, D. Horpácsi. Automated Syntax Manipulation in RefactorErl. 14th International Erlang/OTP User Conference. Stockholm, November 13, [18] Lövei, L., Hoch, C., Köllö, H., Nagy, T., Nagyné-Víg, A., Kitlei, R., and Király, R.: Refactoring Module Structure In 7th ACM SIGPLAN Erlang Workshop, 2008 [19] Zoltán Horváth, László Lövei, Tamás Kozsik, Róbert Kitlei, Anikó Nagyné Víg, Tamás Nagy, Melinda Tóth, and Roland Király. Building a Refactoring Tool for Erlang. In K. Mens, M. van den Brand, A. Kuhn, H.M. Kienle, and R. Wuyts, editors, 1st International Workshop on Academic Software Development Tools and Techniques, pages. [20] Lövei, L., Hoch, C., Köllő, H., Nagy, T., Nagyné-Víg, A., Horpácsi, D., Kitlei, R., and Király, R.: Refactoring Module Structure In Proceedings of the 7th
10 References 10 ACM SIGPLAN workshop on Erlang, pages 83 89, Victoria, British Columbia, Canada, Sep [21] Lövei, L., Hoch, C., Köllö, H., Nagy, T., Nagyné-Víg, A., Horpácsi, D., Kitlei, R., and Király, R.: Refactoring module structure in.:proceedings of the 7th ACM SIGPLAN workshop on ERLANG Columbia, Canada, (2008) [22] Zoltán Horváth, Zoltán Csörnyei, Roland Király, Róbert Kitlei, Tamás Kozsik, László Lövei, Tamás Nagy, Melinda Tóth, and Anikó Víg.: Use cases for refactoring in Erlang, To appear in Lecture Notes in Computer Science, (2008) [23] R. Kitlei, L. Lövei, M Tóth, Z. Horváth, T. Kozsik, T. Kozsik, R. Király, I. Bozó, Cs. Hoch, D. Horpácsi.: Automated Syntax Manipulation in RefactorErl. 14th International Erlang/OTP User Conference. Stockholm, (2008) [24] Lövei, L., Hoch, C., Köllö, H., Nagy, T., Nagyné-Víg, A., Kitlei, R., and Király, R.: Refactoring Module Structure In 7th ACM SIGPLAN Erlang Workshop, (2008) [25] Zoltán Horváth, László Lövei Tamás Kozsik, Anikó Nagyné Víg, Tamás Nagy, Roland Király, Melinda Tóth, Róbert Kitlei, Dániel Horpácsi, Hanna Kölló, Krisztián Tóth, Csaba Hoch.: Erlang programok modulszerkezetének refaktorálása, Technical report (2008) [26] Horváth, Z., Lövei, L., Kozsik, T., Kitlei, R., Víg, A., Nagy, T., Tóth, M., and Király, R.: Building a refactoring tool for Erlang In Workshop on Advanced Software Development Tools and Techniques, WASDETT 2008, (2008) [27] Huiqing Li, Simon Thompson, György Orosz, Melinda Tóth.: Refactoring with wrangler, updated: data and process refactorings, and integration with Eclipse Proceedings of the 7th ACM SIGPLAN workshop on ERLANG (2008) [28] Lövei, L., Horváth, Z., Kozsik, T., Király, R., Víg, A., and Nagy, T.: Refactoring in Erlang, a Dynamic Functional Language In Proceedings of the 1st Workshop on Refactoring Tools, pages 4546, Berlin, Germany, 2007 extended abstract [29] László Lövei, Zoltán Horváth, Tamás Kozsik, Roland Király, and Róbert Kitlei. Static rules of variable scoping in Erlang. In Emőd Kovács, Péter Olajos, and Tibor Tómács, editors, Proceedings of the 7th International Conference on Applied Informatics, volume 2, pages , rev: Zbl pre [30] Tamás Kozsik, Zoltán Csörnyei, Zoltán Horváth, Roland Király, Róbert Kitlei, László Lövei, Tamás Nagy, Melinda Tóth, and Anikó Víg. Use Cases for Refactoring in Erlang. In Central European Functional Programming School (The Second Central European Summer School, CEFP 2007, Cluj, Romania, June 23-30, 2007), Revised Selected Lectures, volume 5161 of Lecture Notes in Computer Science, pages Springer Berlin/Heidelberg, rev: Zbl , DBLP
11 References 11 [31] László Lövei, Zoltán Horváth, Tamás Kozsik, and Roland Király. Introducing records by refactoring. In Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, pages ACM Press, [32] Lövei, L., Horváth, Z., Kozsik, T., Király, R., Víg, A., and Nagy, T.: Refactoring in Erlang, a Dynamic Functional Language In Proceedings of the 1st Workshop on Refactoring Tools, pages 45 46, Berlin, Germany, extended abstract, poster (2007) [33] T. Kozsik, Z. Horváth, L. Lövei, T. Nagy, Z. Csörnyei, A. Víg, R. Király, M. Tóth, R. Kitlei.. Refactoring Erlang programs. CEFP 07, Kolozsvár (2007) [34] Ryder, C., Thompson, S. Software Metrics: Measuring Haskell, In Marko van Eekelen and Kevin Hammond, editors, Trends in Functional Programming (September 2005) [35] Ryder, C. Software Measurement for Functional Programming, PhD thesis, Computing Lab, University of Kent, Canterbury, UK 2004) [36] Fóthi Á., Nyéki-Gaizler J., Porkoláb Z. The Structured Complexity of Object Oriented Programs Computers and Mathematics with applications, (2002) [37] Frank Simon, Frank Steinbrückner, Claus Lewerentz Metrics based refactoring IEEE Computer Society Press , [38] Claus Lewerentz, Frank Simon A Product Metrics Tool Integrated into a Software Development Environment Object-Oriented Technology (ECOOP 98 Workshop Reader), LNCS 1543 Springer-Verlag [39] Klaas van den Berg.: Software Measurement and Functional Programming, PhD Thesis University of Twente (1995) [40] Erlang - Dynamic Functional Language [41] Eclipse Foundation
Detecting and Visualising Process Relationships in Erlang
Procedia Computer Science Volume 29, 2014, Pages 1525 1534 ICCS 2014. 14th International Conference on Computational Science Melinda Tóth and István Bozó Eötvös Loránd University, Budapest, Hungary {tothmelinda,
More informationStatic rules of variable scoping in Erlang
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 137 145. Static rules of variable scoping in Erlang László Lövei, Zoltán Horváth,
More informationPrototype Environment for Refactoring Clean Programs
Prototype Environment for Refactoring Clean Programs Extended abstract Rozália Szabó-Nacsa, Péter Diviánszky, Zoltán Horváth Department of Software Technology and Methodology, Eötvös Loránd University,
More informationGeneric syntactic analyser: ParsErl
Generic syntactic analyser: ParsErl Róbert Kitlei, László Lövei, Tamás Nagy, Anikó Nagyné Vig, Zoltán Horváth, Zoltán Csörnyei Department of Programming Languages and Compilers, Eötvös Loránd University,
More informationRefactoring via Database Representation
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Refactoring via Database Representation Péter Diviánszky 1, Rozália Szabó-Nacsa 2, Zoltán Horváth 1 1 Department
More informationTeaching Principles of Dependable Distributed Software
Teaching Principles of Dependable Distributed Software Zoltán Horváth hz@inf.elte.hu Faculty of Informatics, Eötvös Loránd University, Budapest 14th Workshop on Software Engineering Education and Reverse
More informationTeaching Functional Programming
Zoltán Horváth hz@inf.elte.hu lecturers: István Bozó, Zoltán Csörnyei, Andrea Kovács, Gábor Páli, Máté Tejfel, Melinda Tóth Faculty of Informatics, Eötvös Loránd University, Budapest 15th Workshop on Software
More informationWhere shall I parallelize?
Where shall I parallelize? Judit Dániel Tamás Melinda István Viktória Zoltán Kőszegi Horpácsi Kozsik Tóth Bozó Fördős Horváth Eötvös Loránd University and ELTE-Soft Kft. Budapest, Hungary Erlang User Conference
More informationDeveloping Web-Based Applications Using Model Driven Architecture and Domain Specific Languages
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain
More informationThesis book. Extension of strongly typed object-oriented systems using metaprograms István Zólyomi
Thesis book Extension of strongly typed object-oriented systems using metaprograms István Zólyomi Supervisor: Dr. Zoltán Porkoláb Eötvös Loránd University Faculty of Informatics Department of Programming
More informationComparative analysis of refactoring and code optimization
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 257 264. Comparative analysis of refactoring and code optimization Róbert Kitlei,
More informationTeaching programming language in grammar schools
Annales Mathematicae et Informaticae 36 (2009) pp. 163 174 http://ami.ektf.hu Teaching programming language in grammar schools Zoltán Hernyák, Roland Király Eszterházy Károly College, Department of Information
More informationFunctional Modelling of Operating Systems
BABEŞ-BOLYAI UNIVERSITY, CLUJ-NAPOCA FACULTY OF MATHEMATICS AND COMPUTER SCIENCE EÖTVÖS LORÁND UNIVERSITY, BUDAPEST FACULTY OF INFORMATICS Functional Modelling of Operating Systems Theses of the Doctoral
More informationOn the correctness of template metaprograms
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007 Vol 2 pp 301 308 On the correctness of template metaprograms Ádám Sipos, István Zólyomi, Zoltán
More informationWhy code complexity metrics fail on the C++ standard template library
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 271 276. Why code complexity metrics fail on the C++ standard template library Norbert
More informationDetaching and Reconstructing the Documentary Structure of Source Code
Chapter 1 Detaching and Reconstructing the Documentary Structure of Source Code Péter Diviánszky, Attila Góbi, Dániel Leskó, Mónika Mészáros, 1 Gábor Páli 2 Category: Research 3 Abstract: Comments and
More informationRefactoring Erlang Programs
Refactoring Erlang Programs Huiqing Li, Simon Thompson University of Kent, UK László Lövei, Zoltán Horváth, Tamás Kozsik, Anikó Víg, Tamás Nagy Eötvös Loránd University, Hungary Abstract We describe refactoring
More informationAnalysing and visualising callback modules of Erlang generic server behaviours
Analysing and visualising callback modules of Erlang generic server behaviours István Bozó bozoistvan@caesar.elte.hu Melinda Tóth tothmelinda@caesar.elte.hu Mátyás Béla Kuti matyas.kuti@gmail.com ELTE
More informationLAYOUT PRESERVING PARSER FOR REFACTORING IN ERLANG
54 Acta Electrotechnica et Informatica, Vol. 9, No. 3, 2009, 54 63 LAYOUT PRESERVING PARSER OR REACTORING IN ERLANG Róbert KITLEI, László LÖVEI, Tamás NAGY, Zoltán HORVÁTH, Tamás KOZSIK Department of Programming
More informationFeldspar A Functional Embedded Language for Digital Signal Processing *
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 149 156. Feldspar A Functional Embedded Language for Digital Signal Processing *
More informationPractical Analyses for Refactoring Tools. University of Kent, UK
Practical Analyses for Refactoring Tools Simon Thompson University of Kent, UK Huiqing Li EE, UK Context Building refactoring tools for functional programming languages. Haskell, OCaml, CakeML, Wrangler,
More informationParallel Functional Programming Using D-Clean
Parallel Functional Programming Using D-Clean The theses of the Ph.D. dissertation Zsók Viktória http://zsv.web.elte.hu/ 2012 zsv@elte.hu Supervisor: Prof. Dr. Horváth Zoltán Eötvös Loránd University,
More informationEgy Erlang Refaktor Lépés: Függvényparaméterek Összevonása Tuple-ba
Egy Erlang Refaktor Lépés: Függvényparaméterek Összevonása Tuple-ba TDK Dolgozat Nagy Tamás és Víg Anikó e-mail: {n_tamas viganiko}@inf.elte.hu Konzulensek: Horváth Zoltán és Simon Thompson Programozási
More informationEvolution of XML Applications
Evolution of XML Applications University of Technology Sydney, Australia Irena Mlynkova 9.11. 2011 XML and Web Engineering Research Group Department of Software Engineering Faculty of Mathematics and Physics
More informationUNIT TESTING OF C++ TEMPLATE METAPROGRAMS
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 1, 2010 UNIT TESTING OF C++ TEMPLATE METAPROGRAMS ÁBEL SINKOVICS Abstract. Unit testing, a method for verifying a piece of software, is a widely
More informationIntermediate representations of functional programming languages for software quality control
Intermediate representations of functional programming languages for software quality control Melinda Tóth, Gordana Rakić Eötvös Loránd University Faculty of Informatics University of Novi Sad Chair of
More informationSpoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT
Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,
More informationSERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT
Delft University of Technology Software Engineering Research Group Technical Report Series Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve
More informationDomain-specific languages with custom operators
Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 2. pp. 263 271 doi: 10.14794/ICAI.9.2014.2.263 Domain-specific languages with custom
More informationThe Semantic Web Explained
The Semantic Web Explained The Semantic Web is a new area of research and development in the field of computer science, aimed at making it easier for computers to process the huge amount of information
More informationA User-extensible Refactoring Tool for Erlang Programs
A User-extensible Refactoring Tool for Erlang Programs Huiqing Li and Simon Thompson School of Computing, University of Kent, UK {H.Li, S.J.Thompson}@kent.ac.uk Abstract. Refactoring is the process of
More informationScenario-based Refactoring Selection
BABEŞ-BOLYAI University of Cluj-Napoca Faculty of Mathematics and Computer Science Proceedings of the National Symposium ZAC2014 (Zilele Academice Clujene, 2014), p. 32-41 Scenario-based Refactoring Selection
More informationBypassing Memory Leak in Modern C++ Realm
Annales Mathematicae et Informaticae 48 (2018) pp. 43 50 http://ami.uni-eszterhazy.hu Bypassing Memory Leak in Modern C++ Realm Dorottya Papp, Norbert Pataki Dept. of Programming Languages and Compilers,
More informationCURRICULUM VITAE. June, 2013
CURRICULUM VITAE ד"ר אבי סופר Dr. Avi Soffer June, 2013 ORT Braude College, Department of Software Engineering, P.O. Box 78, Karmiel 2161002, Israel Telephone: +972-4-990-1720 Email: asoffer@braude.ac.il
More informationExtracting the Range of cps from Affine Typing
Extracting the Range of cps from Affine Typing Extended Abstract Josh Berdine, Peter W. O Hearn Queen Mary, University of London {berdine, ohearn}@dcs.qmul.ac.uk Hayo Thielecke The University of Birmingham
More informationThe Horizontal Splitter Algorithm of the Content-Driven Template- Based Layout System
The Horizontal Splitter Algorithm of the Content-Driven Template- Based Layout System ISTVÁN ALBERT, HASSAN CHARAF, LÁSZLÓ LENGYEL Department of Automation and Applied Informatics Budapest University of
More informationStatic Safety Analysis of UML Action Semantics for Critical Systems Development
Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521
More informationRecovering Erlang AST from BEAM bytecode
Recovering Erlang AST from BEAM bytecode Dániel Lukács and Melinda Tóth Eötvös Loránd University HU, Faculty of Informatics This research has been supported by the Hungarian Government through the New
More informationSHOTGUN SURGERY DESIGN FLAW DETECTION. A CASE-STUDY
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVIII, Number 4, 2013 SHOTGUN SURGERY DESIGN FLAW DETECTION. A CASE-STUDY CAMELIA ŞERBAN Abstract. Due to the complexity of object oriented design, its assessment
More informationModelling of Adaptive Hypermedia Systems
Modelling of Adaptive Hypermedia Systems Martin Balík, Ivan Jelínek Abstract: The amount of information on the web is permanently growing. The orientation within the information is becoming more and more
More informationXML Data in (Object-) Relational Databases
XML Data in (Object-) Relational Databases RNDr. Irena Mlýnková irena.mlynkova@mff.cuni.cz Charles University Faculty of Mathematics and Physics Department of Software Engineering Prague, Czech Republic
More informationA case in Multiparadigm Programming : User Interfaces by means of Declarative Meta Programming
A case in Multiparadigm Programming : User Interfaces by means of Declarative Meta Programming S. Goderis W. De Meuter J. Brichau Programming Technology Lab, Vrije Universiteit Brussel, Belgium Abstract.
More informationSYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca
SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Departament Departament
More informationProving Invariants of Functional Programs
Proving Invariants of Functional Programs Zoltán Horváth, Tamás Kozsik, Máté Tejfel Eötvös Loránd University Department of General Computer Science {hz,kto,matej}@inf.elte.hu Abstract. In a pure functional
More informationKent Academic Repository
Kent Academic Repository Full text document (pdf) Citation for published version Li, Huiqing and Thompson, Simon and Reinke, Claus (2005) The Haskell Refactorer, HaRe, and its API. Electronic Notes in
More informationCOMMUNITY SHELL S EFFECT ON THE DISINTEGRATION OF SOCIAL NETWORKS
Annales Univ. Sci. Budapest., Sect. Comp. 43 (2014) 57 68 COMMUNITY SHELL S EFFECT ON THE DISINTEGRATION OF SOCIAL NETWORKS Imre Szücs (Budapest, Hungary) Attila Kiss (Budapest, Hungary) Dedicated to András
More informationLog System Based on Software Testing System Design And Implementation
4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Log System Based on Software Testing System Design And Implementation Yan Liu1, a, Dahai Jin1,
More informationSymbolic Evaluation of Sums for Parallelising Compilers
Symbolic Evaluation of Sums for Parallelising Compilers Rizos Sakellariou Department of Computer Science University of Manchester Oxford Road Manchester M13 9PL United Kingdom e-mail: rizos@csmanacuk Keywords:
More informationConstructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow
Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Jang-Wu Jo 1 and Byeong-Mo Chang 2 1 Department of Computer Engineering Pusan University of Foreign Studies Pusan
More informationPattern composition in graph transformation rules
Pattern composition in graph transformation rules András Balogh and Dániel Varró Department of Measurement and Information Systems Budapest University of Technology and Economics H-1117 Magyar tudosok
More informationTesting the Usability of Visual Languages: A Web-Based Methodology
Testing the Usability of Visual Languages: A Web-Based Methodology Mauro Mosconi Marco Porta Dipartimento di Informatica e Sistemistica Università di Pavia Via Ferrata, 1 27100 Pavia Italy mauro@vision.unipv.it
More information2 nd UML 2 Semantics Symposium: Formal Semantics for UML
2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany
More informationImagine you ve written a piece of code but then accidentally deleted and lost it.
Why Refactor? Imagine you ve written a piece of code but then accidentally deleted and lost it. Questions: How much time would it take you to reconstruct from scratch what you had the same amount, or more,
More informationIntroduction. Intended readership
Introduction The Semantic Web is a new area of computer science that is being developed with the main aim of making it easier for computers to process intelligently the huge amount of information on the
More informationThe Haskell Refactorer, HaRe, and its API
LDTA 2005 Preliminary Version The Haskell Refactorer, HaRe, and its API Huiqing Li a,1 Simon Thompson a,1 Claus Reinke b,1 a Computing Laboratory, University of Kent, Canterbury, UK b Canterbury, UK Abstract
More informationModeling pilot project at Ericsson Expert Analytics
Modeling pilot project at Ericsson Expert Analytics Gábor Ferenc Kovács, Gergely Dévai ELTE-Soft, ELTE University, Ericsson Ericsson Modeling Days, Stockholm, 13-14 September 2016 Overview Background of
More informationA Type Graph Model for Java Programs
A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl
More informationDomain-Specific Languages for Digital Forensics
Domain-Specific Languages for Digital Forensics Jeroen van den Bos Centrum Wiskunde & Informatica Nederlands Forensisch Instituut jeroen@infuse.org Abstract. Due to strict deadlines, custom requirements
More informationEclipse Support for Using Eli and Teaching Programming Languages
Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built
More informationSupporting parametric polymorphism in CORBA IDL
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 285 292. Supporting parametric polymorphism in CORBA IDL Zoltán Porkoláb a, Roland
More informationChuck Cartledge, PhD. 21 January 2018
Big Data: Data Analysis Boot Camp Serial vs. Parallel Processing Chuck Cartledge, PhD 21 January 2018 1/24 Table of contents (1 of 1) 1 Intro. 2 Amdahl A little math 3 BD Processing Programming paradigms
More informationThe TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations
The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,
More informationTwo Dimensional Visualization of Software Metrics
2 Two Dimensional Visualization of Software Metrics TIBOR BRUNNER and ZOLTÁN PORKOLÁB, Ericsson Ltd. Successful software systems are under continuous change. Bug-fixing, adding new features modify or extend
More informationDesigning a System Engineering Environment in a structured way
Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan
More informationThe Fox Project: Advanced Development of Systems Software
The Fox Project: Advanced Development of Systems Software R&D Status Report July 1 to September 30, 1999 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 19991222 022 This research
More information... is a Programming Environment (PE)?... is Generic Language Technology (GLT)?
Introduction to Generic Language Technology Today Mark van den Brand Paul Klint Jurgen Vinju Tools for software analysis and manipulation Programming language independent (parametric) The story is from
More informationAutomatic Verification of Closures and Lambda-Functions in Python Master s Thesis Project Description
Automatic Verification of Closures and Lambda-Functions in Python Master s Thesis Project Description Benjamin Weber March 2017 Introduction Higher-order functions take other functions as parameters. Thus,
More informationA Modified Inertial Method for Loop-free Decomposition of Acyclic Directed Graphs
MACRo 2015-5 th International Conference on Recent Achievements in Mechatronics, Automation, Computer Science and Robotics A Modified Inertial Method for Loop-free Decomposition of Acyclic Directed Graphs
More informationImplementation of Axiomatic Language
Implementation of Axiomatic Language Walter W. Wilson 1 1 Dept. of Computer Science & Engineering The University of Texas at Arlington Arlington, Texas 76019, USA wwwilson@acm.org Abstract This report
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationA PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING
IADIS International Conference Applied Computing 2007 A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING Lau Sei Ping 1, Wee Bui Lin 2, Nurfauza bt Jali 3 Faculty of Computer Science and Information Technology
More informationA Visual Based Framework for the Model Refactoring Techniques
A Visual Based Framework for the Model Refactoring Techniques M. Štolc *, I. Polášek *(**) * Faculty of Informatics and Information Technologies, STU Bratislava, Slovakia ** Gratex International, a.s.,
More informationThe largest known Cunningham chain of length 3 of the first kind
Stud. Univ. Babeş-Bolyai Math. 59(2014), No. 4, 457 462 The largest known Cunningham chain of length 3 of the first kind Gábor Farkas, Gábor E. Gévay, Antal Járai and Emil Vatai Abstract. Cunningham chains
More informationAdding Usability to Web Engineering Models and Tools
Adding Usability to Web Engineering Models and Tools Richard Atterer 1 and Albrecht Schmidt 2 1 Media Informatics Group Ludwig-Maximilians-University Munich, Germany richard.atterer@ifi.lmu.de 2 Embedded
More informationRenaud Durlin. May 16, 2007
A comparison of different approaches EPITA Research and Development Laboratory (LRDE) http://www.lrde.epita.fr May 16, 2007 1 / 25 1 2 3 4 5 2 / 25 1 2 3 4 5 3 / 25 Goal Transformers:
More informationRAMSES: a Reflective Middleware for Software Evolution
RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it
More informationDistributed Computing Based on Clean Dynamics
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Distributed Computing Based on Clean Dynamics Hajnalka Hegedűs, Zoltán Horváth Department of Programming Languages
More informationA FRAMEWORK FOR ACTIVE OBJECTS IN.NET
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 3, 2010 A FRAMEWORK FOR ACTIVE OBJECTS IN.NET DAN MIRCEA SUCIU AND ALINA CUT Abstract. Nowadays, the concern of computer science is to find new
More informationAn Object Model for Multiparadigm
1 of 7 03/02/2007 15:37 http://www.dmst.aueb.gr/dds/pubs/conf/1994-oopsla-multipar/html/mlom.html This is an HTML rendering of a working paper draft that led to a publication. The publication should always
More informationREVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES
REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationProceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, Vol. 2. pp.
Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 2. pp. 9 16 doi: 10.14794/ICAI.9.2014.2.9 PFW as generator László Menyhárt, Gáborné
More informationDescribing Semantics of Data Types in XML
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Describing Semantics of Data Types in XML Szabolcs Hajdaraa, Balázs Ugronb Department of Software Technology and
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2018 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationADAM CHLIPALA. Research interests. Education. Refereed conference papers
579 Soda Hall Berkeley, CA 94720-1776 USA adamc@cs.berkeley.edu http://www.cs.berkeley.edu/ adamc/ Research interests ADAM CHLIPALA Dependent type systems; interactive theorem proving; type-based programming
More informationEliminating Annotations by Automatic Flow Analysis of Real-Time Programs
Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Jan Gustafsson Department of Computer Engineering, Mälardalen University Box 883, S-721 23 Västerås, Sweden jangustafsson@mdhse
More informationAN AGILE MDA APPROACH FOR EXECUTABLE UML STRUCTURED ACTIVITIES
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LII, Number 2, 2007 AN AGILE MDA APPROACH FOR EXECUTABLE UML STRUCTURED ACTIVITIES I. LAZĂR, B. PÂRV, S. MOTOGNA, I.-G. CZIBULA, AND C.-L. LAZĂR Abstract.
More informationThe Implications of Optimality Results for Incremental Model Synchronization for TGGs Holger Giese, Stephan Hildebrandt
The Implications of Optimality Results for Incremental Model Synchronization for TGGs Bi-directional transformations (BX) Theory and Applications Across Disciplines (13w5115) December 1-6, 2013 Holger
More informationAdvanced Layouts in a Content-Driven Template-Based Layout System
Advanced Layouts in a Content-Driven Template-Based Layout System ISTVÁN ALBERT, HASSAN CHARAF, LÁSZLÓ LENGYEL Department of Automation and Applied Informatics Budapest University of Technology and Economics
More informationTowards Sound Refactoring in Erlang
Tanti, E. and Francalanza, A. (2015). Xjenza Online, 3:3135. Xjenza Online - Journal of The Malta Chamber of Scientists DOI: Research Article Towards Sound Refactoring in Erlang E. Tanti, A. Francalanza
More informationPROGRAMMING THEOREMS HAVE THE SAME ORIGIN Péter SZLÁVI, Gábor TÖRLEY, László ZSAKÓ, HU
PROGRAMMIG THEOREMS HAVE THE SAME ORIGI Péter SZLÁVI, Gábor TÖRLEY, László ZSAKÓ, HU Abstract: One of the classical ways of learning programming is to divide programming tasks into large groups, so-called
More informationChuck Cartledge, PhD. 24 September 2017
Introduction Amdahl BD Processing Languages Q&A Conclusion References Big Data: Data Analysis Boot Camp Serial vs. Parallel Processing Chuck Cartledge, PhD 24 September 2017 1/24 Table of contents (1 of
More informationModel refactoring within a Sequencer TOMAŽ KOS 1, TOMAŽ KOSAR 2, JURE KNEZ 1, MARJAN MERNIK 2
Model refactoring within a Sequencer TOMAŽ KOS 1, TOMAŽ KOSAR 2, JURE KNEZ 1, MARJAN MERNIK 2 1 DEWESoft d.o.o. Gabersko 11a, 1420 Trbovlje SLOVENIA {tomaz.kos, jure.knez}@dewesoft.si http://www.dewesoft.si
More informationStatic analysis and testing of executable DSL specification
Static analysis and testing of executable DSL specification Qinan Lai 1, Andy Carpenter 1 1 School of Computer Science, the University of Manchester, Manchester, UK {laiq,afc}@cs.man.ac.uk Keywords: Abstract:
More informationTowards Compositional Domain Specific Languages
Andreas Horst, Bernhard Rumpe Software Engineering RWTH Aachen University, Germany http://www.se-rwth.de/ 1 Introduction The deployment of Domain Specific Languages (DSL) and in particular Domain Specific
More informationKey Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability
Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability Timothy C. Lethbridge Department of Electrical Engineering and Computer Science, University of Ottawa
More informationCheckVir anti-virus testing and certification
CheckVir anti-virus testing and certification : Best Paper Proceedings Nikoletta Kárpáti, Veszprog Ltd., Hungary Ph.D. Ferenc Leitold, Veszprem University - Veszprog Ltd., Hungary About Authors Nikoletta
More informationAn Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications
SOS 2006 Preliminary Version An Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications Adrian Pop 1,2 Peter Fritzson 3 Programming Environments Laboratory
More informationCREATING SORTED LIST FOR SIMULINK MODELS WITH GRAPH TRANSFORMATION
CREATING SORTED LIST FOR SIMULINK MODELS WITH GRAPH TRANSFORMATION Péter Fehér (a), Tamás Mészáros (a), Pieter J. Mosterman (b) and László Lengyel (a) (a) Department of Automation and Applied Informatics
More information