Luca Dan Șerbănați at the baccalaureate, 1961
Luca Dan Șerbănați in the early 1970s
Luca Dan Șerbănați giving his last fifth-year lecture, April 1989

Luca Dan Șerbănați

Emeritus Professor at Politehnica University of Bucharest

Research, teaching, industry and memoirs

RO | EN | IT
Luca Dan Șerbănați in Venice, 1990
Luca Dan Șerbănați in New York, 2005
Luca Dan Șerbănați

Landmarks

  • Institution: Polytechnic Institute of Bucharest, Faculty of Control Engineering
  • Programme: Computer Engineering
  • Year / semester: year III, semester II
  • Format: 2 hours lecture + 2 hours seminar
  • Course basis: the textbook Teoria limbajelor formale

Context of the course

If Automata Theory brought before students the idea of a formal model of computation, this second course shifted the emphasis toward language: toward the rules by which symbolic structures are generated, toward the way these structures can be described rigorously, and toward their relation to programs, compilers, and formal systems in general.

In the natural order of things, the course came after automata. In reality, however, it had a distinct identity and a special stake of its own. Here the transition was made from abstract machines and acceptors to grammars, derivations, classes of languages, and the idea that the syntax of a programming language is not merely a practical convention, but a formal construction that can be described, analysed, and processed systematically.

For me, this course meant more than a simple continuation of the previous one. It opened a path that led directly toward one of my later concerns: programming languages and compilers. Once you start teaching formal languages, you can no longer ignore the essential question: how do you move from a grammar to a parser, from a formal definition to an effective implementation?

Structure and main ideas of the textbook

  • Introduction to languages and formal systems. The basic concepts are fixed: alphabet, word, language, operations on languages, and the relation between description and generation.
  • Formal grammars. The basic definitions appear here: productions, derivations, sentential forms, and the relation between a grammar and the language it generates.
  • The Chomsky hierarchy. The textbook orders the classes of grammars and languages in a unified framework: regular, context-free, context-sensitive, and general recursive, showing both the differences and the relations among them.
  • Context-free languages. This is one of the central parts, because here lie the basic instruments for describing the syntax of programming languages: derivation trees, ambiguity, grammar transformations, and the relation to pushdown automata.
  • Parsing. The course already prepared the ground for compilers: top-down and bottom-up methods, the idea of the parser, and the move from grammar to effective analysis procedures.
  • Formal systems and Post systems. The end of the textbook widened the perspective beyond programming languages proper, toward the more general notion of formal system and the role of production rules in symbolic construction.

Significance of the course

For Computer Engineering students, this course had a double function. On the one hand, it provided a rigorous theoretical discipline based on definitions, classes, proofs, and relations between models. On the other hand, it opened a direct path toward fundamental applications of computer science: the syntax of programming languages, parsing, and compiler design.

From this perspective, Formal Language Theory was one of the important links in the formation of a unified vision of the field: automata, languages, computability, compilers. Later, this continuity would also be found in my courses, textbooks, and research on programming languages and compilers.

Connection with my later evolution

Looking back, the course also mattered because it forced me to think more precisely about the relation between syntax and meaning. Even if the main emphasis still fell on grammars and the formal analysis of languages, the ground was already being prepared here for more difficult questions: how meaning is attached to a syntactic structure, how a language becomes a programming tool, and how a compiler is built to treat these different levels systematically.

In this sense, the course was not only a theoretical discipline of its time, but one of the deeper roots of my later direction in languages and compilers.

Materials on the course and textbook

Links

Chronology: for the biographical and institutional context, see My Path in Research.