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
Times are displayed in time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
Environments and ToolsResearch Papers at Stifel Theatre
Chair(s): Alejandro RussoChalmers University of Technology, Sweden
Build Systems à la CarteDistinguished Paper
Research Papers
Andrey MokhovNewcastle University, UK, Neil Mitchell, Simon Peyton JonesMicrosoft, UK
Keep Your Laziness in Check
Research Papers
Kenneth Foner, Hengchu ZhangUniversity of Pennsylvania, Leonidas LampropoulosUniversity of Pennsylvania
Merlin: A Language Server for OCaml (Experience Report)
Research Papers
Frédéric BourFacebook Paris, Thomas Réfis, Gabriel SchererINRIA Saclay
Functional Programming for Compiling and Decompiling Computer-Aided Design
Research Papers
Chandrakana NandiUniversity of Washington, USA, James R. WilcoxUniversity of Washington, Taylor BlauUniversity of Washington, Dan GrossmanUniversity of Washington, Zachary TatlockUniversity of Washington, Seattle