Date of Award
Doctor of Philosophy (PhD)
School of Computing
Xiaoping Jia, PhD
Adam Steele, PhD
Wael Kessentini, PhD
Chris Jones, PhD
Over time the level of abstraction embodied in programming languages has continued to grow. Paradoxically, most programming languages still require programmers to conform to the language's rigid constructs. These constructs have been implemented in the name of efficiency for the computer. However, the continual increase in computing power allows us to consider techniques not so limited. To this end, we have created CABERNET, a Controlled Natural Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This syntax enables increased programmer efficiency.
CNLs have previously been used to document requirements. We have taken this approach beyond the typical application of creating requirements documents to creating functional programs. Using heuristics and inference to analyze and determine the programmer's intent, the CABERNET toolchain can create functional mobile applications. This approach allows programs to align with how humans think rather than how computers process information. Using customizable templates, a CABERNET application can be processed to run on multiple run-time environments. Since processing a CABERNET program file results in a native application program, performance is maintained.
This research explores whether a CNL-based programming tool can provide a readable, flexible, extensible, and easy-to-learn development methodology. To answer this question, we compared sample applications created in Swift, SwiftUI, and a prototype of the CABERNET toolchain. The CABERNET implementations were consistently shorter than those produced in the other two languages. In addition, users surveyed consistently found the CABERNET samples easier to understand.
Dittmer, Howard R., "Code generation based on inference and controlled natural language input" (2023). College of Computing and Digital Media Dissertations. 46.