Date of Award
Spring 4-21-2023
Degree Type
Dissertation
Degree Name
Doctor of Philosophy (PhD)
School
School of Computing
First Advisor
Xiaoping Jia, PhD
Second Advisor
Adam Steele, PhD
Third Advisor
Wael Kessentini, PhD
Fourth Advisor
Chris Jones, PhD
Abstract
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.
Recommended Citation
Dittmer, Howard R., "Code generation based on inference and controlled natural language input" (2023). College of Computing and Digital Media Dissertations. 46.
https://via.library.depaul.edu/cdm_etd/46