POP-PL: A patient-oriented prescription programming language

Spencer P. Florence*, Bruke Fetscher, Matthew Flatt, William H. Temps, Tina Kiguradze, Dennis P. West, Charlotte Niznik, Paul R. Yarnold, Robert Bruce Findler, Steven M. Belknap

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review


Medical professionals have long used algorithmic thinking to describe and implement health care processes without the benefit of the conceptual framework provided by a programming language. Instead, medical algorithms are expressed using English, flowcharts, or data tables. This results in prescriptions that are difficult to understand, hard to debug, and awkward to reuse. This paper reports on the design and evaluation of a domain-specific programming language, POP-PL for expressing medical algorithms. The design draws on the experience of researchers in two disciplines, programming languages and medicine. The language is based around the idea that programs and humans have complementary strengths, that when combined can make for safer, more accurate performance of prescriptions. We implemented a prototype of our language and evaluated its design by writing prescriptions in the new language and administering a usability survey to medical professionals. This formative evaluation suggests that medical prescriptions can be conveyed by a programming language's mode of expression and provides useful information for refining the language. Analysis of the survey results suggests that medical professionals can understand and correctly modify programs in POP-PL.

Original languageEnglish (US)
Pages (from-to)131-140
Number of pages10
JournalACM SIGPLAN Notices
Issue number3
StatePublished - Mar 2015


  • DSL Design
  • Empirical Evaluation
  • Med- ical Prescriptions
  • Medical Programming Languages

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'POP-PL: A patient-oriented prescription programming language'. Together they form a unique fingerprint.

Cite this