Constructing a Compiler for a Prefixed and Parenthesized Language; An Analysis of Parking Infrastructure in Charlottesville
Wu, Tiger, School of Engineering and Applied Science, University of Virginia
Kwon, Yonghwi, EN-Comp Science Dept, University of Virginia
Baritaud, Catherine, EN-Engineering and Society, University of Virginia
Adequate and affordable parking infrastructure is crucial to the health of a community, and as the world becomes increasingly digitized, efficient ways for running software are crucial for community infrastructure implemented with the latest technology. The technical project of this paper involves the research and implementation of a compiler, which is a program used for converting human-readable programming languages into machine-readable languages. It is important to demonstrate an understanding of the fundamentals of compiler design because the reliability of software used to solve community problems ultimately depends upon whether machines correctly interpret the instructions given in the software. The STS paper gives a thorough analysis of the technical solutions and policies pertaining to parking infrastructure in Charlottesville. By understanding the challenges and solutions of local community infrastructure such as parking, one would lay the foundations necessary for solving social problems on a larger scale. By understanding the elements needed for correctly compiling software, an engineer would form the intuition necessary for ensuring that technical solutions for solving social problems are reliable and efficient.
The first line of defence against errors in software is the compiler, which is responsible for identifying patterns and spellings that do not conform to the grammar of the programming language. The main focus of the technical research is studying the literature of compiler design. After grasping the various concepts of compiler implementation, a grammar for a programming language was designed. Afterwards, the compiler for that programming language was written in an existing programming language called C++. The research resulted in a functioning compiler that is capable of performing arithmetic, handling text, notifying the programmer of errors, and other essential features of programming languages within a scope reasonable for a semester of work. Compilers are essential tools for aiding the programmer of errors in code and for executing software efficiently.
The STS project involved investigating the advantages and limitations of parking technology and how different stakeholders could cooperate so that parking would remain accessible and non-intrusive to the general public. The results showed that not all residents welcome advanced parking technology, that advanced parking technology should be implemented as an option in addition to traditional parking solutions, that sound parking policies make a larger impact, and that participation and dialogue are critical. This topic was researched by studying literature about this topic and by conducting interviews with different members of the Charlottesville community who are impacted by parking infrastructure.
The research showed that mobile parking apps often produce operation difficulties and concerns about digital privacy for residents that are not accustomed to the latest technology. Deadlock in the middle of discussing policies for large parking garages severely harm small businesses. The topic of parking in Charlottesville is part of the larger problem of maintaining public infrastructure in a manner that does not harm the interests of participating entities. When faced with any social problem, engineers must thoroughly understand relationships between the people involved and norms that influence the problem. When designing a technical solution to solve a problem, engineers must ensure that software is reliable and efficient. To that end, engineers should have an understanding of how software is compiled and read by machines.
BS (Bachelor of Science)
Assembly, SCOT, Smart City, Parking, Context Free Grammar
School of Engineering and Applied Science
Bachelor of Science in Computer Science
Technical Advisor: Yonghwi Kwon
STS Advisor: Catherine Baritaud
Technical Team Members: N/A
All rights reserved (no additional license for public reuse)