The Functional Programming Group at the University of Kansas apply and extend functional programming technologies to the diverse areas of building computer systems, high-performance computing, information assurance, virtual reality and telemetry. We use functional programming to bring clarity to descriptions of what we want to compute, and computer language technologies to provide efficiency and assurance. Typically, we collaborate with other research groups, deploying our technology and bringing our research and development expertise to work on our collaborators’ open issues, as well as their assurance and performance needs.

Research Thrusts

  • Reification and Homoiconicity: We are developing tools for parallelism that use novel compiler technology for high-performance computing
  • Embedded Systems: We are working on an Arduino compiler, and a Next Generation Kansas Lava.
  • Virtual Reality: We are exploring using VR for teaching, debugging, and (with KU athletics) sport simulators.

Group Composition

The Functional Programming Group at the University of Kansas is led by Andrew Gill. The group operates inside the Computer Systems Design Laboratory (CSDL), at ITTC, in Nichols Hall on west campus.

Recent Activities

FPG Alumni

2018 Justin Dawson (PhD), Mark Grebe (PhD)
2017 Liia Butler (BS), Brandon Caudell (BS)
2016 Jackson Montgomery (BS), Aditya Kumar Ravikanti (MS), Mohammed Ziauddin (MS)
2015 Andrew Farmer (PhD), Rama Krishnamoorthy (MS), Ryan Scott (BS), Moiz Virani (MS)
2014 Jan Bracker (MS Exchange), Adam Howell (BS)
2013 Robert Blair (BS), Patrick G Flor (BS), Neil Sculthorpe (PostDoc)
2012 Patrick Miller (BS)
2011 Tristan Bull (MS), Kevin Matlage (MS), Garrin Kimmell (PostDoc), Brandon Smith (BS)

Visitors and Visits

These are people who have visited the lab. If you want to visit KU, email Professor Gill.

Who When From
Brent Yorgey July 2015 Hendrix College
John Peterson Mar 2015 Western State Colorado University
Laurence E. Day Oct 2013 University of Nottingham
Anders Persson Oct 2011 Chalmers
Simon Thompson June 2011 University of Kent
Jun Inoue Oct/Nov 2010 Rice University

We also occasionally leave the lab.

Who When Length Visiting
Professor Gill Fall 2017- Ongoing [Google] X, The Moonshot Factory
Andrew Farmer Fall 2014 3 months Facebook (London)
Professor Gill Fall 2013 2 weeks Distinguished Visitor Fellowship (Scotland)
Andrew Farmer Spring 2013 6 months Portland State University (Oregon)

Joining the Group

If you are already at KU

New members are always welcome, however, at the graduate level you will need some experience in Haskell, for example, via EECS 776. Email Professor Gill for a discussion, explaining why functional programming is something you are interested in exploring.

If you are not already at KU

If you are not at KU, and are not planning on applying to KU, then please outline how you know Haskell, or another functional language. The lab does not offer scholarships to outside students, though we have people join from other graduate programs from time to time. Template requests for sponsorship without FP specifics will be deleted without acknowledgement.

Common Misunderstandings

  • We are not a software engineering group. We use functional languages to solve problems, which may have a software engineering component.

  • There are no funded research openings right now.

Collaborations and Other Activities

CDSL at ITTC also hosts the System Level Design Group (SLDG), lead by Perry Alexander, who also uses functional programming for system engineering, and with whom we collaborate closely.

SLDG and FPG jointly run the LAMBDA reading group for anyone that is interested, discussing topics related to programming and specification languages, semantic models, and programming paradigms.

We have an IRC group, #ku-csdl, on We also use a subreddit, /r/csdl/, and use github