====== Introduzione ====== Nella prima lezione (1/X/07), abbiamo seguito l'evoluzione dei linguaggi di programmazione, dalle origini ([[wp>Fortran]], [[wp>COBOL]] e [[wp>ALGOL]]) ai linguaggi moderni ([[wp>C_(programming_language)|C]], [[wp>C++]], [[wp>Java_(programming_language)|Java]] e [[wp>Python_(programming_language)|Python]]), accennando anche ai linguaggi non legati al modello di Von Neumann ([[wp>LISP]], [[wp>Prolog]]). Abbiamo inoltre introdotto i concetti di sintassi e semantica di un linguaggio di programmazione, formalizzando la semantica attraverso [[wp>Regular_expression|espressioni regolari]] e [[wp>Context_free_grammars|grammatiche libere dal contesto]], secondo lo schema sviluppato da Backus per l'ALGOL, e poi adottato per la specifica di tutti i linguaggi di programmazione, ovvero la forma normale di Backus-Naur ([[wp>Backus-Naur_form|BNF]]). == Introduction == A short [[wp>History_of_programming_languages|history of programming languages]], from the origins ([[wp>Fortran]], [[wp>COBOL]] and [[wp>ALGOL]]) to modern languages ([[wp>C_(programming_language)|C]], [[wp>C++]], [[wp>Java_(programming_language)|Java]] and [[wp>Python_(programming_language)|Python]]). While these languages cover mostly the Von Neumann paradigm, other languages do not ([[wp>LISP]], [[wp>Prolog]]). In the first lecture, we have introduced the elements of a programming language. More formally, we can group them into [[wp>Regular_expression|regular expressions]] (modelling the "words" of the language) and [[wp>Context_free_grammars|context free grammars]] (modelling the syntax of the language), following the scheme developed by Backus for ALGOL, and later adopted by most language developers as the Backus-Naur Form ([[wp>Backus-Naur_form|BNF]]).