Tom Lokhorst
Students
Name: Tom Lokhorst
Twitter:
@tomlokhorst
Email:
tom@lokhorst.eu
Website:
tom.lokhorst.eu
Planning
2007-2008
Period 1
Period 2
Period 3
Period 4
2008-2009
Period 1
Period 2
Period 3 and 4
2009-2010
Software Technology Colloquium
Paper & talk:
Language Integrated Query (LINQ) for the .NET Framework.
Visited talks:
- The structure of the Essential Haskell Compiler, or Coping with Compiler Complexity
- Improving Automated Feedback - Building a Generic Rule-Feedback Generator
- JML: a notation for specifying the detailed design of Java classes and interfaces
- Design Of A Functionality Language
- Quick Checking Your Java Classes With T2
- Generating Syntax Diagrams From EBNF With AG
- Proving Program Properties Automatically With AgdaLight
- The Default Case In Haskell Counterparty Credit Risk Calculation At ABN AMRO
- Automatic Instruction Set Generation
- The ICFP Contest 2007
- Comparing Program Plagiarism Detection Tools
- Intermediate Sequence Removal
- Implement your own Dynamic Binary Analysis using the Valgrind Framework
- Generic Views For Generic Types
- The Spring Framework
- CLP, A load & performance framework for the Conclusion Test Platform
- Relations As A First-Class Citizen In Java
- The Zipper
- F# - A Functional Programming Language Within The .NET Framework
- Vector LLVA
- Abstract Interpretation Of Functional Programs Using An Attribute Grammar System
- The Burrows-Wheeler Transform
- Static Contract Checking For Haskell
- Optimizing Attribute Grammars
- Model-Based Testing With Spec Explorer
- Object-Relational Mapping With Hibernate
- Trace-based Logic Testing
- Multiple inheritance
- Protocol And Interface Testing With The Conclusion Test Platform
- Map Reduce
- The Haskell Application Server
- Power Of Pi
- Terminating Combinator Parsers In Agda
- Debugging Haskell programs by asking the Oracle
- Comparing Libraries For Generic Programming In Haskell
- Scientific ICT-Research Event Netherlands (SIREN) (2008)
- Negotiation Dynamics
- Semantic network analysis: old ideas and new means to master the information society
- Knowledge Management of Global Work
- Mythology and Folklore of Computer Network Protocol Design
- Constructing and Composing Efficient Top-down Parsers at Runtime
- An executable operational semantics for Python
- Applying Algebraic Specifications and Testing to Java
- Extending T2 with Prime Path Coverage Exploration
- Using Python Generators in Multiplexing Servers
- Polyvariant Escape Analysis
- Binding-Time Analysis : Subtyping versus Subeffecting
- Shifting The Stage: Staging with Delimited Control
- Binary Relational Querying For Structural Source Code Analysis
- Proxima 2.0, WYSIWYG generic editing for the Web
- Garbage Collection
- Pugs, Bootstrapping Perl 6 with Haskell
- Slicing it: indexed containers? in Haskell?
- Session Types in Haskell
- Automated Model-based Analysis Of Web-based User Interface (UI)
- Typed Transformations of Typed Abstract Syntax
- A Proxima editor for Shuffle: manipulating fragmented text visually
- Attribute Grammars Fly First-Class: How To Do Aspect Oriented Programming In Haskell
- Computational Semantics With Functional Programming
- Functional Self-Adjusting Programming
- Algorithmic Type Inferencer Specifications for Declarative Type Systems
- Comparing Mason to other plagiarism detectors
- Dynamic typing in C# 4.0
- Automated discovery of algebraic specifications from Java classes
- Dependently Typed Grammar Transformations
- Static Testing: Using the Weakest Pre-condition
- Spreading the Joy. Making “Stricterness” More Relevant
- Generic Type-Safe Diff and Patch for Families of Datatypes (Thesis defense, Eelco Lempsink)
- wxFlashkell: Building Flash based GUI's in Haskell
- Practical and Generic Incrementalization
- Classification of development activities using source code metrics
- Universes for Generic Programs
- Data Parallel Haskell
- Concise tree walks using attribute grammars: in Haskell and Java
- Extending a Simple Functional Programming Language with Dependent Types
- Generic programming with fixed points for parametrized datatypes (Thesis defense, Erik Hesselink)
- Oleg Kiselyov and Ken Chan
- Call-pattern specialization in Haskell
- Making "Stricterness" More Relevant
- Final presentations of Advanced Compiler Construction Seminar
- On the Role of Minimal Typing Derivations in Type-driven Program Transformation
- Feedback oriented security analysis (Thesis defense, Jeroen Weijers)
- Fun With Attribute Grammars
- First Class Tree Traversal Idioms with Nested Attribute Grammars
- The Pesto Framework (Thesis defense, Chris Eidhof)
- Neon, Analyzing errors in Helium (Thesis defense, Mathijs Swint)
- Persistent Data Structures In Haskell (Thesis defense, Sebastiaan Visser)
- Generic Selections of Subexpressions (Thesis defense, Martijn van Steenbergen)
- Optimizing Closures In Lazy Functional Languages (Thesis defense, Atze van der Ploeg)
- IDEAS: Improving the Functional Programming Domain (Thesis defense, Peter van de Werken)
- Managing consistency between dependent objects (Thesis defense, Jeroen Bouwmans)
Thesis Project
Topic/Area
I really liked the last two seminars I took:
Type-based program analysis and
Advanced compiler construction. So I've decided to smash them together in a Master's thesis project.
Project
| Project title: |
Strictness Optimization in a Typed Intermediate Language
|
| Advisor:
| Atze Dijkstra and Doaitse Swierstra
|
| Start date:
| September 2009
|
| End date:
| August 2010
|
Description
Abstract: Static program analysis and compile time program optimizations are important aspects of functional language compilers. Strictness optimization is a big part of a Haskell compiler, it is interesting from a research perspective, as well as being needed for practical performance issues.
In this presentation we explore a new, typed intermediate language designed for doing static program analysis. This language is well suited to implementing optimizing transformations. We implement strictness optimization for first-order functions, and see how we can safely combine this optimization with other optimizations.
Finally, we discuss how we can extend the language to implement strictness optimization for higher-order functions.
Thesis & subsequent work
The final thesis
Strictness Optimization in a Typed Intermediate Language is now available.
The chapter on strictness optimization for higher-order functions was presented at
IFL 2010 and will be turned into a paper for the IFL proceedings.