Papers by Alberto Pettorossi
An Introduction to Formal Language Theory, 1988
In this section we establish one of the most important equivalences in theoretical computer scien... more In this section we establish one of the most important equivalences in theoretical computer science: we prove that a language is context-free if and only if some push-down automaton can accept the language in a sense we shall shortly make precise. This result has practical as well as theoretical importance, because a push-down store is the basis for several algorithms used in parsing context-free languages.
Bookmarks Related papers MentionsView impact
arXiv (Cornell University), Oct 5, 2011
Bookmarks Related papers MentionsView impact
Electronic proceedings in theoretical computer science, Nov 19, 2022
Bookmarks Related papers MentionsView impact
In these lecture notes we present a few basic approaches to the definition of the semantics of pr... more In these lecture notes we present a few basic approaches to the definition of the semantics of programming languages. In particular, we present: (i) the operational semantics and the axiomatic semantics for a simple imperative language, and (ii) the operational semantics and the denotational semantics for some first order and higher order, typed functional languages. We then present some basic techniques for proving properties of imperative, functional, and concurrent programs. We closely follow the presentation of the subject matter done by Glynn Winskel.
Bookmarks Related papers MentionsView impact
These lecture notes present some basic techniques for: (i) exploring search spaces, (ii) parsing ... more These lecture notes present some basic techniques for: (i) exploring search spaces, (ii) parsing context-free languages, and (iii) matching patterns in strings. These techniques are taught in a course on Automata, Languages, and Translators at the University of Roma Tor Vergata. We assume that the reader is familiar with the basic notions of Automata Theory and Formal Languages. These notions can be found in many books such as [Har78,HoU79,Pet07]. Some of the algorithms we have presented in these notes are written in Java 1.5 and some others in Prolog. For the Java language the reader may refer to the Java Tutorial at http://java.sun.com/docs/books/tutorial/. (Recall that this Java version allows the use of parametrized types, also called generics.) All Java programs have been compiled using the Java compiler 1.5.0-13 running under Mac OS X 10.4.11 Darwin 8.11.1. For the Prolog language the reader may refer to [ClM84]. The Prolog language incorporates a backtracking mechanism which is useful for exploring search spaces and solving parsing and matching problems.
Bookmarks Related papers MentionsView impact
Bookmarks Related papers MentionsView impact
Science of Computer Programming, Nov 1, 2017
Bookmarks Related papers MentionsView impact
... Thanks to Michele Ranieri and Massimiliano Macchia for pointing out some imprecisions in a pr... more ... Thanks to Michele Ranieri and Massimiliano Macchia for pointing out some imprecisions in a preliminary version of these lecture notes. Many thanks also to the Aracne Publishing Company for its helpful cooperation. Parole Chiave: Semantics of programming languages. ...
Bookmarks Related papers MentionsView impact
Electronic proceedings in theoretical computer science, Jul 14, 2016
Bookmarks Related papers MentionsView impact
arXiv (Cornell University), Nov 28, 2022
Bookmarks Related papers MentionsView impact
These lecture notes are intended to introduce the reader to the basic notions of nondeterministic... more These lecture notes are intended to introduce the reader to the basic notions of nondeterministic and concurrent programming. We start by giving the operational semantics of a simple deterministic language and the operational semantics of a simple nondeterministic language based on guarded commands. Then we consider concurrent computations based on: (i) vectorization, (ii) shared variables, and (iii) handshaking communications a la CCS (Calculus for Communicating Systems) [16]. We also address the problem of mutual exclusion and for its solution we analyze various techniques such as those based on semaphores, critical regions, conditional critical regions, and monitors. Finally, we study the problem of detecting distributed termination and the problem of the serializability of database transactions. Sections 1, 2, and 6 are based on [16,22]. The material of Sections 3 and 4 is derived from [1,2,4,5,7,8,13,18,20]. Section 5 is based on [10] and is devoted to programming examples written in Java where the reader may see in action some of the basic techniques described in these lecture notes. In Section 7 we closely follow [3]. We would like to thank Dr. Maurizio Proietti for his many suggestions and his encouragement, Prof. Robin Milner and Prof. Matthew Hennessy for introducing me to CCS, Prof. Vijay K. Garg from whose book [10] I learnt concurrent programming in Java, my colleagues at Roma Tor Vergata University for their support and friendship, and my students for their patience and help. Many thanks also to Dr. Gioacchino Onorati and Lorenzo Costantini of the Aracne Publishing Company for their kind and helpful cooperation. Roma, April 2005 In the third edition we have corrected a few mistakes, we have improved Chapter 2, and we have added in the Appendix a Java program for the distributed computation of spanning trees of undirected graphs. Thanks to Dr. Emanuele De Angelis for discovering an error in the presentation of Peterson’s algorithm. Roma, January 2009
Bookmarks Related papers MentionsView impact
Fundamenta Informaticae, Oct 1, 1989
In a previous paper of ours [Pettorossi-Skowron 87] we have introduced the higher order generaliz... more In a previous paper of ours [Pettorossi-Skowron 87] we have introduced the higher order generalization strategy (also called lambda abstraction strategy) and we have indicated through some examples its use for the automatic derivation of programs. Here we study that strategy in more detail and we analyze its capabilities for obtaining highly efficient programs, considering also some cases in which other known strategies for program development do not work.
Bookmarks Related papers MentionsView impact
Lecture Notes in Computer Science
We analyze the motto: "efficiency = parallelism + communications" as an approach for de... more We analyze the motto: "efficiency = parallelism + communications" as an approach for developing parallel programs. Communications are used for deriving suitable program transformations via definition of "eureka" functions or synthesis of "annotations". We also introduce a strategy, called minimal extension strategy, for obtaining new auxiliary functions, and some preliminary ideas for a new theory of communications, which do not effect program correctness, but only program efficiency.
Bookmarks Related papers MentionsView impact
Texts in Computer Science, 2021
Bookmarks Related papers MentionsView impact
Bookmarks Related papers MentionsView impact
Fundamenta Informaticae, 2013
Bookmarks Related papers MentionsView impact
Springer eBooks, Jan 11, 2008
Page 1. Olivier Danvy Harry Mairson itz Henglein ... ... University of Aarhus, Denmark Olivier Da... more Page 1. Olivier Danvy Harry Mairson itz Henglein ... ... University of Aarhus, Denmark Olivier Danvy University of Copenhagen, Denmark Fritz Henglein Brandeis University, Massachusetts, USAHarry Mairson Università di Roma Tor Vergata, Italy Alberto Pettorossi June 2007 ...
Bookmarks Related papers MentionsView impact
EPiC series in computing, Jan 23, 2018
Bookmarks Related papers MentionsView impact
EPiC series in computing, Jan 23, 2018
Bookmarks Related papers MentionsView impact
Italian Conference on Computational Logic, 2010
Bookmarks Related papers MentionsView impact
Uploads
Papers by Alberto Pettorossi