Ted Kaminski

Ted Kaminski

Contact information
Office: 6-204 EE/CS
My (old) blog "Generic language"
Github - tedinski
Twitter @tedinski

Mailing address:
4-192 EE/CS Building
200 Union Street SE
Minneapolis, MN 55455

My new book-writing project

Also, It's associated Patreon. Support the effort! :)

About me

I finished a PhD in programming languages working for Eric Van Wyk. I worked on the Silver language and compiler. I have also developed the extensible C compiler, AbleC, using Silver.

My thesis work focuses on guaranteeing the successful composition of language extensions, specifically their semantics, into a compiler that works fully as expected. To that end, I have developed a static analysis that, applied locally to each module (language extension) in isolation from each other, will ensure the global properties necessary to ensure successful composition of any set of modules. Accompanying this, I have developed a set of principles that, when adhered to, ensure no unexpected (buggy) behavior as the result of composing any set of extensions together. These principles can be enforced with a testing-based approach with two useful properties. First, the host language imposes a battery of test cases on each extension, and so the extension developer does not need to write them. Second, and perhaps more importantly, any bug in the resulting composed compiler will in fact have a test case exposing the bug on some individual extension in isolation. In other words, there are no "gestalt" failures in the composed compiler: every bug has blame.

I am generally interested in almost every area of programming languages and compilers, with a particular interest in areas with potential impact on practice. Other hobbies include distributed systems, verification, security, design, and machine learning.

I have also participated in a number of interdisciplinary projects involving climate science, chemical engineering, high-performance computing, and modeling in aerospace engineering.

Recent happenings

Jan 2018
Launched a new blog. Trying a patreon model book writing project.
Oct 2017
Gave 3 talks at SPLASH! Phew.
Silver 0.4 released.
May 2017
Thesis published: Reliably composable language extensions.
June 1, 2016
Thesis defended!
Spring 2015
Cofounded a Homotopy Type Theory reading group jointly with Math and CS students.
Spring 2014
AbleC released on github.
Fall 2013
GAANN Fellow '13-'14
Appointed CSGSA Treasurer
Released Silver 0.3.6.
Spring 2013
Thesis proposal - completed!
Talk: "Extensibility and the history of programming languages" to CSGSA Grad Colloquium.
Fall 2012
Presenting "Verifiable composition of language extensions" to the SLE 2012 Doctoral Symposium.
Presenting "Modular well-definedness analysis for attribute grammars" at SLE 2012.
Visiting CWI in Amsterdam for a day on Oct 2nd.
Appointed Treasurer and COGS representative for CSGSA '12-'13
Spring 2012
Ran the first Silver Hackathon.
Released Silver 0.3.5. (Now hosted by Google Code.)
Fall 2011
Will be at Midwest Verification Day 2011 (ssshh. It's secretly two days.)
Served as the convener for the PL seminar reading group.
Appointed Treasurer for the CSGSA '11-'12
Summer 2011
Attended OPLSS again this summer.
Attended GTTSE.
Presented "Integrating attribute grammar and functional programming language features" at SLE 2011.
Spring 2011
Released Silver 0.3.2.
Entered Silver into the LDTA 2011 tool challenge at ETAPS.
Fall 2010
Released Silver 0.3.1.
Invited talk: "Language specification and extension using Silver." for Adventium Labs.
Gave a talk "Objects, data types, and language extension" to CSGSA's Grad Colloquium.
Summer 2010
Elected Secretary of the CSGSA '10-'11
Attended OPLSS June 15-25
Competed in the ICFP programming contest on team "ooplss2010." We came in 62nd.
Spring 2010
Co-Instructor: CSci 1113: C/C++ for Scientists and Engineers
Fall 2009
GAANN Fellow '09-'10
Participated in the PFF program
Summer 2009
TA: CSci 1902: Structure of Computer Programming II
Elected President of the CS grad student association (CSGSA) '09-'10
Spring 2009
TA: CSci 4041: Algorithms & Data Structures
Fall 2008
TA: CSci 4041: Algorithms & Data Structures
TA: PubH 6000: e-Public Health