This year's "Programming Languages Mentoring Workshop" and POPL that took place in San Diego, had been a blast. This was my second time attending PLMW/POPL and I can say that anyone who will be able to attend this conference (and the mentoring workshop day) while being a PhD -or even undergrad- student will get a unique opportunity to explore the field of programming languages. So, go for it, the next time you hear about the PLMW scholarships!
This year's attendance had a little bit of structure in note taking for me, since I had a "battery-autonomy > 2 hours"d laptop this time. The format was in Latex and in the end I had a ten-page pdf-document of raw data with links, listings, citations, summaries of talks, to-do items that will help me or a colleague! Surprisingly, the interest some times doesn't come from the solution to a problem that a paper presents per se, but from the methodology that was followed. Some things/realizations/resolutions/advices to share listified are the following:
- Invariants are calculated, are approximated, are broken, can be temporarily broken and then restored, dependent types are super-related to them, are definitely a key concept of parametricity, to abstraction safety and many more!
- Look for Peter O’Hearn's and Isil Dillig's talks for abstract interpretation 101 (this will help you a lot for past, current and future POPL papers).
- Study about academic writing, presenting!
- Separation Logic can provide solutions to reasoning of infinitely many problems (like type invariant that holds almost everywhere, like reasoning for C sequence points)
- Study Software Foundations and Certified Programming with Dependent Types, Coq is must nowadays. Mechanically checked proof writing with Coq is already a top-class skill for POPL publishing.
- Appel, Andrew W. Efficient verified red-black trees, 2011.
- Flanagan, Cormac, and Patrice Godefroid. Dynamic partial-order reduction for model checking software, ACM Sigplan Notices. Vol. 40. No. 1. ACM, 2005.
- Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, 1977.
- Leijen, Daan, and Erik Meijer. Parsec: Direct style monadic parser combinators for the real world, 2001.
- Felleisen, Matthias, and Daniel P. Friedman. Control Operators, the SECD-Machine, and the Lambda-Calculus, 1986
- Veanes, Margus. Applications of symbolic finite automata. Implementation and Application of Automata. Springer Berlin Heidelberg, 2013.
- Löh, Andres, Conor McBride, and Wouter Swierstra. A tutorial implementation of a dependently typed lambda calculus. Fundamenta informaticae 102.2, 2010.
- Reynolds, John C. Types, abstraction and parametric polymorphism. (1983):513-523.
- Mitchell, John C. Representation independence and data abstraction. Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. ACM, 1986.
- Wadler, Philip. Theorems for free!. Proceedings of the fourth international conference on Functional programming languages and computer architecture. ACM, 1989.
- [metapaper] Brookes, Stephen, Peter W. O’Hearn, and Uday Reddy. The essence of Reynolds. Proceedings of the 41st annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, 2014.
No comments:
Post a Comment