Here is a list of suggested references (talks, books, scientific papers, articles, blog posts) which complete various topics covered during the classes. At the moment they are only classified according to the topics we considered during the classes and they can be considered as starting points to learn new advanced topics.
If you find further interesting references, please, consider to send me a PR.
-
John Backus. Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs, 1977.
-
John Hughes. Why Functional Programming Matters, 1989. Video from https://www.lambdadays.org/.
-
Mary Rose Cook. An introduction to functional programming, 2014.
-
Aditya Bhargava. Functors, Applicatives, And Monads In Pictures, 2017.
-
Hemanth HM. Functional Programming Jargon, 2018.
-
Patrick Dubroy. Immutability is not enough, 2016.
-
Robert Harper. Of Course ML Has Monads!, 2011.
-
Robert Harper. Modules Matter Most, 2011.
-
Erik Meijer, Maarten Fokkinga, Ross Paterson. Functional programming with bananas, lenses, envelopes and barbed wire, 1991.
-
Erik Meijer. Fundamentalist Functional Programming, 2009.
-
Philip Wadler. The First Monad Tutorial, 2013.
-
Paul Chiusano and Runar Bjarnason. Functional Programming in Scala, 2014.
-
Harold Abelson and Gerald Jay Sussman with Julie Sussman. Structure and Interpretation of Computer Programs, 1996.
-
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to design program, 2020.
-
Guido van Rossum. PEG Parsing Series, 2019. Video from North Bay Python 2019.
-
Bryan Ford. Parsing expression grammars: a recognition-based syntactic foundation, POPL 2004.
-
Bryan Ford. Packrat Parsing: Simple, Powerful, Lazy, Linear Time, ICFP 2002.
-
Aleksey Kladov. Simple but Powerful Pratt Parsing, 2020.
-
Laurence Tratt. Parsing: the solved problem that isn't, 2011.
-
Laurence Tratt. Which Parsing Approach?, 2020.
-
Aleksey Kladov. Challenging LR Parsing, 2020.
-
Scott Wlaschin. Understanding parser combinators: a deep dive, 2016.
-
Matthew Might and David Darais. Yacc is dead, 2010. Here is an update that completes and extends the paper.
-
Matthew Might, David Darais and Daniel Spiewak. Parsing with Derivatives (A functional pearl), ICFP 2011.
-
Graham Hutton and Erik Meijer. Monadic Parsing in Haskell, Journal of Functional Programming, 1998.
-
Terence Parr and Kathleen Fisher. LL(*): The Foundation of the ANTLR Parser Generator, PLDI 2011.
-
Terence Parr, Sam Harwell and Kathleen Fisher. Adaptive LL(*) Parsing: The Power of Dynamic Analysis, OOSPLA 2014.
-
Romain Edelmann, Jad Hamza and Viktor Kunčak. Zippy LL(1) parsing with derivatives, PLDI 2020. Here is the talk presented at the conference.
-
Grzegorz Herman. Faster general parsing through context-free memoization, PLDI 2020. (you can access the paper from university network). Here is the talk presented at the conference.
-
Enrico Zandomeni Borba. A White-space sensitive lexer, 2020.
-
Luca Cardelli. Type systems, 1997.
-
Jens Palsberg. Type-Based Analysis and Applications, 2001.
-
Flemming Nielson and Hanne Riis Nielson. Type and Effect Systems, 1999.
-
Benjamin C. Pierce. Types and Programming Languages, 2002.
-
Benjamin C. Pierce (Editor). Advanced Topics in Types and Programming Languages, 2004.
-
Anders Møller and Michael I. Schwartzbach. Static Program Analysis, 2020.
-
Hanne Riis Nielson, Flemming Nielson, Henrik Pilegaard. Flow Logic for Process Calculi. ACM Comput. Surv., 2012.
-
Chiara Bodei, Pierpaolo Degano, Flemming Nielson and Hanne Riis Nielson. Control Flow Analysis for the pi-calculus. CONCUR, 1998.
-
David Van Horn and Matthew Might. Abstract Abstract Machines. IFCP, 2010.
-
Matthew Might, Yannis Smaragdakis and David Van Horn. Resolving and Exploiting the k-CFA Paradox, PLDI, 2010.
-
Ilya Sergey, Dominique Devriese, Matthew Might, Jan Midtgaard, David Darais, Dave Clarke and Frank Piessens. Monadic abstract interpreters, PLDI, 2013.
-
Sam Blackshear, Nikos Gorogiannis, Peter W. O'Hearn, Ilya Sergey. RacerD: Compositional Static Race Detection, OOPLA, 2018.
-
Neville Grech, Michael Kong, Anton Jurisevic, Lexi Brent, Bernhard Scholz and Yannis Smaragdakis. MadMax: Analyzing the Out-of-Gas World of Smart Contracts, Commun. of ACM, 2020.
-
Yue Li, Tian Tan, Anders Møller, Yannis Smaragdakis. A Principled Approach to Selective Context Sensitivity for Pointer Analysis, ACM TOPLAS, 2020.
-
Simon Holm Jensen, Anders Møller, Peter Thiemann. Type Analysis for JavaScript, SAS, 2009.
-
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang. Compositional shape analysis by means of bi-abduction, POPL, 2009.
-
Dino Distefano, Manuel Alfred Fahndrich, Francesco Logozzo, Peter W O’Hearn. Scaling static analyses at Facebook, Commun. of ACM, 2019.
-
Michael Hicks. What is soundness (in static analysis)?, 2017.
-
Michael Hicks. What is type safety?, 2014.
-
Daniel Patterson and Amal Ahmed. The Next 700 Compiler Correctness Theorems, ICFP 2019.
-
Amal Ahmed. Verified Compilers for a Multi-Language World, SNAPL: Summit on Advances in Programming Languages, 2015.
-
Michael Hicks. What is PL research and how is it useful?, 2015.
-
Swarat Chaudhuri.AI Safety as a PL problem, 2019.
-
Geoffrey Smith. Principles of Secure Information Flow Analysis, 2007.
-
Andrei Sabelfeld and Andrew C. Myers. Language-Based Information-Flow Security, 2003.
-
Musard Balliu and Andrei Sabelfeld. Securing IoT Apps, 2019.
-
Marco Patrignani, Amal Ahmed and Dave Clarke. Formal Approaches to Secure Compilation, ACM Comput. Surv. 51(6):125, 2019
-
Michael Hicks. Software Security is a Programming Languages Issue, 2018.
-
Michael Hicks. Software Security Ideas Ahead of Their Time, 2016.
-
Michael Hicks. What is noninterference, and how do we enforce it?, 2015.
-
Michael Hicks. What is memory safety?, 2014.
-
Michael Hicks. Securing computation, 2014.
-
Michael Hicks. Formal Reasoning in PL and Crypto, 2014.
-
Matteo Busi and Letterio Galletta. A Brief Tour of Formally Secure Compilation. ITASEC, 2019.
-
Gabriele Costa, Pierpaolo Degano, Letterio Galletta. Sicurezza del software: l’approccio linguistico, Mondo digitale, 2019.