Inspiration

The top programming languages such as Python, Java, and C++ are all written using one dominant language: English due to the generally accepted convention. Non-English speakers have an extra barrier of language when it comes to pursuing their interest. To add on, java, C++ and other popular languages can also be verbose; our language is not only beneficial because of its universality, but it shortens that 10 lined essay into a single line of code, making it easy to debug and efficient! We hope by making it essentially not language-specific, programmers worldwide can express and share their diverse culture and ideas through their CS projects.

What it does

Since the language barrier is a significant blockade for non-native English speakers learning to code, UPL uses universally accepted symbols to substitute commonly used English keywords. This renders it obsolete to know English or any other language, and achieves equal accessibility globally. Furthermore, it flattens out the learning curve for international students, allows greater ease for project contribution and increases the global community of programmers.

How we built it

UPL was written with a custom-built tool to generate skeleton code for ASTs, flex for tokenization, and bison for semantic analysis. We used an annotated syntax tree to transpile our language into C (we felt that directly interpreting it would be too slow).

Challenges we ran into

Our code had a lot of bugs such as parsing errors, countless segmentation faults, memory leaks, and bus errors, which were difficult to fix. Our user experience is also suboptimal, as we spent the bulk of our time fixing bugs and making sure the language works properly.

Accomplishments that we're proud of

We successfully achieved a working product of the programming language without using a single English word. Additionally, we collaborated to create a stylized website from scratch to showcase our programming language.

What we learned

We gained a deeper understanding of using C coupled with the tools Flex and Bison to construct languages. When building our website, we became more experienced with HTML and CSS.

What's next for Universal Programming Language

We hope to implement more features such as strings, arrays, and for loops. We also hope to make changes to the code to optimize runtime. Another vision for future development is to offer the website in different languages to increase global accessibility.

Built With

Share this project:

Updates