Welcome to the home page of the F# Program Analysis Project at the Eötvös Loránd University!

Members

Supervisors

Horváth, Zoltán (ELTE)
Varga, Máté (MS)

PhD students

Góbi, Attila
Mészáros, Mónika

MSc students

Antyipin, Artyom
Bana, Gábor
Batha, Dorián
Kiss, Tamás
Kovács, Andrea
Leskó, Dániel
Majoros, Dániel
Szendi, Ferenc
Varga, Gábor

Former Members

Downloads

FSharpTools -- A software toolbox for building analysis and refactor programs based on the project results.

Contact

F# Contact Address

Introduction

Functional programming is an emerging programming paradigm. One of the recent languages is F#, a non-pure functional language. It has a growing importance mainly on .NET architecture.

Effective usage of any programming language requires both the deeper understanding of the language behavior in critical situations (like parallel, concurrent systems), and the existence of a set of tools to create and maintain programs. Current programmers mainly educated with imperative/object-oriented languages, knowledge of functional programming (if exists) has lack of real practice. At the same time ELTE has a major knowledge base on functional programming both in the theoretical and practical side.

The purpose of this project is to enhance knowledge on functional programming, especially on the proper and efficient usage of F#, prepare the introduction of F# in production programming, and widening the base of F#-enabled graduates at the universities. Furthermore design and development of support tools for enhance programmer efficiency (like code analyzers and refactoring tools) is planned.

The project is run by the Department of Programming Languages and Compilers at the Faculty of Informatics, Eötvös Loránd University in Budapest, Hungary.

The project is supported by:

Research Goals

  • Describe the properties of F# regarding parallel, concurrent execution.

  • Explore typical use cases, best practices, also traps and pitfalls and write coding guidelines (for example about using persistent data structures and pure functional language constructs).

  • Syntactical refactoring tool which helps to standardize coding styles. Experiment with a parser which guesses the style of the source code. This parser would return a syntax tree and separate style information (like HTML and CSS). A design goal is that the code transformations should update the style information as less as possible. A printer would generate the modified source code from the modified syntax tree with the style information.

  • Code analyzer implementing syntactical software metrics with the following metrics, for example:

    • Line of Code.
    • Number of functions, function arguments, global variables.
    • Usage of data structures and different programming constructs.
    • Resource analysis.
  • Create visual interfaces for the developed tools.

  • Involve F# in the curriculum of ELTE University.

Publications, Talks

  • Mészáros, M., Horváth, Z., Kovács, A., Leskó, D.: Layered Representation Of Source Code [paper]
    Studia Univ. Babes-Bolyai, Informatica, Volume LV, Number 1, 2010

  • Mészáros, M., Diviánszky, P., Góbi, A., Kovács, A., Leskó, D., Páli, G.: Detaching and Reconstructing the Documentary Structure of Source Code [talk]
    8th International Conference on Applied Informatics, Eger, Hungary, January 27-30, 2010

  • Góbi, A., Kozsik, T., Mészáros, M., Antyipin, A., Batha, D., Kiss, T.: Untangling Type Inference and Scope Analysis [talk]
    8th International Conference on Applied Informatics, Eger, Hungary, January 27-30, 2010

  • Diviánszky, P., Góbi, A., Leskó, D., Mészáros, M., and Páli, G.: Detaching and Reconstructing the Documentary Structure of Source Code [paper]
    10th Symposium on Trends in Functional Programming, Komarno, Slovakia, June 2-4, 2009

  • Diviánszky, P., Mészáros, M., and Páli, G.: Analysis of F# Programs [talk]
    3rd Central European Summer School, PhD Workshop, Komarno, Slovakia, May 25-30, 2009

  • Diviánszky, P., Mészáros, M., and Páli, G.: A forráskód külalakjának eltárolása és visszaállítása (in Hungarian) [talk]
    ELTE von Neumann Day, May 7, 2009

  • Diviánszky, P., Horváth, Z., Mészáros, M., and Páli, G.: Infrastructure for Analysis of F# Programs [poster]
    ELTE Innovation Day, February 2009