Write a Blog >>
ICFP 2018
Sun 23 - Sat 29 September 2018 St. Louis, Missouri, United States
Mon 24 Sep 2018 11:37 - 12:00 at Stifel Theatre - Environments and Tools Chair(s): Alejandro Russo

Desktop-manufacturing techniques like 3D printing are increasingly
popular because they reduce the cost and complexity of producing
customized objects on demand. Unfortunately, the vibrant communities of
early adopters, often referred to as “makers,” are not well-served by
currently available software pipelines. Users today must compose
idiosyncratic sequences of tools which are typically repurposed variants
of proprietary software originally designed for expert specialists.

This paper proposes fundamental programming-languages techniques to
bring improved rigor, reduced complexity, and new functionality to the
computer-aided design (CAD) software pipeline for applications like
3D-printing. Compositionality, denotational semantics, compiler
correctness, and program synthesis all play key roles in our approach,
starting from the perspective that solid geometry is a programming

Specifically, we define a purely functional language for CAD called lcad
and a polygon surface-mesh intermediate representation. We then define
denotational semantics of both languages to 3D solids and a compiler
from CAD to mesh accompanied by a proof of semantic preservation. We
illustrate the utility of this foundation by developing a novel
synthesis algorithm based on evaluation contexts to “reverse compile”
difficult-to-edit meshes downloaded from online maker communities back
to more-editable CAD programs. All our prototypes have been implemented
in OCaml modularly to enable further exploration of functional
programming for desktop manufacturing.

Mon 24 Sep

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
Environments and ToolsResearch Papers at Stifel Theatre
Chair(s): Alejandro Russo Chalmers University of Technology, Sweden
Build Systems à la CarteDistinguished Paper
Research Papers
Andrey Mokhov Newcastle University, UK, Neil Mitchell , Simon Peyton Jones Microsoft, UK
Keep Your Laziness in Check
Research Papers
Kenneth Foner , Hengchu Zhang University of Pennsylvania, Leonidas Lampropoulos University of Pennsylvania
Merlin: A Language Server for OCaml (Experience Report)
Research Papers
Frédéric Bour Facebook Paris, Thomas Réfis , Gabriel Scherer INRIA Saclay
Functional Programming for Compiling and Decompiling Computer-Aided Design
Research Papers
Chandrakana Nandi University of Washington, USA, James R. Wilcox University of Washington, Taylor Blau University of Washington, Dan Grossman University of Washington, Zachary Tatlock University of Washington, Seattle