Salta al contenuto principale della pagina

FORMAL LANGUAGES AND COMPILERS

CODE 80269
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 2nd year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 1° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    The course aims to introduce the theory of formal languages and its application to compiler design. Particular emphasis will be placed on designing applications for human-computer interaction and for the design of web-based systems. 

    AIMS AND CONTENT

    LEARNING OUTCOMES

    The course objective is to provide the tools, both formal and practical, for the definition of programming languages ​​and their translators and provide application design skills and interoperable web systems in compliance with international standards. The course aims to provide a necessary preparation to the formation of the profiles of the Information Engineers skills that are emerging at national and European level.

    AIMS AND LEARNING OUTCOMES

    For the above purposes the course is organized into three parts:
    1. The first part introduces the “reference models” for computer science and describes the basic properties and representations of the main types of formal languages;
    2. The second part analyzes the structure of compilers, examining the main phases of the translation process, the issues associated with each of them and the relevant solution techniques;
    3. The third part provides basic tools for natural language processing, in order to design human-machine interaction for semantic and personalized access to information. Will be introduced also the mechanisms for access to information in the context of the so-called Web 2.0, and the Web of Data.

    Expected learning outcomes:

    To acquire knowledge, skills and competencies necessary for a computer engineer for:

    • be able to relate the results of the theory of formal languages with the basic techniques for constructing lexical and syntactical analyzers of programming languages,
    • also be able to use the results of the theory of formal languages for the design of human-machine interfaces and for the design of interoperable web systems, and also understand how web standards are not limited to the design, but rather a way to create a new generation of web applications that make it possible to reduce costs of design, development and quality control in compliance with current regulations and in terms of accessibility.

    PREREQUISITES

    Basic knowledge on computer architecture, procedural programming languages, on client and server side programming, and on scripting languages.

    TEACHING METHODS

    During the course will be required the student to participate in the development of:

    • a Project group or individual (developed during the exercises) in which the student will use tools and methods seen in class.

    Students will also invited to participate to a Discussion Forum on topics introduced during the lesson on the portal of the course.

    SYLLABUS/CONTENT

    Parte I – Models and Languages

    • Automata and Turing machines
    • Introduction of theory of formal languages
    • Chomsky Hierarchy
    • Programming Languages Evolution
    • Foundation of Programming Languages

    Parte II – Compilers and Interpreters

    • Architecture of a compiler
    • Syntax directed translation
    • Lexical analysis
    • Syntactic analysis
    • Semantic analysis and intermediate code generation

    Parte III – Natural Language Processing and Web 2.0

    • Introduction to computational linguistics
    • Natural Language Generation
    • Intelligent information retrieval
    • Social tagging, folksonomie and Linked Data

    Practice and Laboratory

    • Generation of lexical analyzers
    • Generation of translators
    • Development of an indivudual/collective project

    RECOMMENDED READING/BIBLIOGRAPHY

    • A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman. Compilers: Principles, Techniques, and Tools, Pearson/Addison-Wesley, 2007.
    • W3C, Web Design and Applications: http://www.w3.org/standards/webdesign/.
    • G. Adorni. Notes made available on the web portal.

    TEACHERS AND EXAM BOARD

    Exam Board

    GIOVANNI ADORNI (President)

    ARMANDO TACCHELLA

    MARCO MARATEA (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

     

    The final examination consists in a discussion about the project and an assessment of the arguments posted in the Forum during the course.

    Exam schedule

    Date Time Location Type Notes
    17/01/2023 10:00 GENOVA Prova pratica
    01/02/2023 10:00 GENOVA Prova pratica
    05/06/2023 10:00 GENOVA Prova pratica
    22/06/2023 10:00 GENOVA Prova pratica
    28/08/2023 10:00 GENOVA Prova pratica

    FURTHER INFORMATION

    Students with disabilities or learning disorders are allowed to use specific modalities and supports that will be determined on a case-by-case basis in agreement with the Delegate of the Engineering courses in the Committee for the Inclusion of Students with Disabilities, prof. Francesco Curatelli. Students are invited to contact the teacher and copy the Delegate (francesco.curatelli@unige.it).