Inspiration
I have wanted to make my own coding language because I find it hard to learn other languages. I also think that it would be a fun challenge. I had never seen anyone make a coding language before so I felt like I wanted to challenge myself to do something fun. Also, I struggle with making hackathon ideas so this was the best thing I had to do!
What it does
It is supposed to be a "website" which runs a compiler of the code. By compiler, I mean you can input text which represents lines of code and it will output the result. The syntax is very similar to the "half-way" point between the syntax of Java and the syntax of Python. Instead of print, we use output. You don't need parenthesis for the print statement either. Instead of a semi colon, all code lines end with a period. The variable declaration is similar to Javascript in the sense that we use the "let" keyword.
However, there are some issues. It is supposed to display error messages, but it does not. The spacing between the input and output boxes is wonky. It displays that the code is being run and has been run, which is something I would have liked to get rid of. Another very big bug: the output outputs the word that follows it, even if that word is a variable. This also means that strings are an issue, and it is impossible to test the inputs and outputs by typing in code and seeing the result.
How we built it
I used AI to help me. This included sources such as ChatGPT, Claude, and ReplitAI. I needed to use AI to help kickstart my project because I struggled to think of a project that I wanted to do until close to the halfway point, and that meant I would be limited by time. Besides from using AI to help me do code, I mainly used VSCode, which is the typical coding website. I also used Replit which wasn't planned but I eventually found myself stuck with the same problem that I could not get out of.
Basically, the code was mapped out like this. All the files and folders are nested under a folder called "Project." Four python files (lexer.py, parser.py, interpreter.py, and app.py) are all nested directly under Project, and so is a markdown file called syntax.md. A folder named "Static" is nested under "Project" containing style.css and script.js. Finally, another folder named "Templates" is nested under Project and contains index.html. The lexer creates the basis for the keywords and what they mean. The parser parses the keywords and the interpreter interprets the parser. Each one builds off of each other. App.py connects the backend to the frontend using Flask. index.html, style.css, and script.js are all generically named as they are the front end for the code. There may have been additional files used on Replit, but I did not see what they were.
Challenges we ran into
I spent the first 40-50% of HackUMBC not sure what I wanted to do. I wasn't off-task or constantly brainstorming, but all of the ideas that I was trying to implement weren't working. I went from doing a breadboard computer on Tinkercad, to doing Nand2Tetris, to doing website design from Wix, to doing website design on VSCode. I had gone so far into the website design before I realized that I was getting into a situation where I didn't know the solution, so I scrapped it and decided to make a coding language of my own. Having wasted this much time, but I was still proud of myself for staying on task.
I didn't know how to make a coding language so I asked ChatGPT for help. It told me how to make the code. Instead of just copy-pasting, because that felt wrong, I actually typed out all of the code. I didn't view the process until part of it was done. By a certain part, adding classes into the code felt weird because I didn't know where I was suppose to place the code snippets that ChatGPT showed me. Then, one of my biggest problems was learning how to propperly install Flask. Thankfully, I did, but I feared I was stuck! But the end result was not what I expected. I remembered hearing that Claude was better than ChatGPT, but from experience, Claude was much harder to use (in my personal opinion), and it did not do a good job of making the website like I had hoped. My last resort was to use ReplitAI to make the website because I've made a website using it before, and it worked out pretty good. However, I did not check properly what the code was doing and the code can't even be tested due to the way that the output statement works. There are some other technical bugs too like not saying errors. For the presentation, I wanted to have the replit code downloaded into VSCode but to do that I needed to send it to Github, and my experience with Github has been horrible. So, I just left it to be shown in Replit and the earlier version for VSCode.
Accomplishments that we're proud of
I'm proud that I was able to be locked in for most of the hackathon, even though it meant that I wouldn't sleep. As I write this right now, I feel only a little bit tired, but it might be because my energy was carried by two Celciuses (one early on, and the other at midnight). I'm proud that I was able to figure out the problems regarding AI being absolutely stupid and not totally 100% free, and that I was able to get a decent enough product to be shared at the hackathon experience.
What we learned
It's okay to not have 100% of what you hope on your final result. I know from personal experiences that coding can be hard especially when you work alone because you have to do everything yourself.
What's next for Codex
Probably nothing. I can't lie to you, this was my first time doing something like this and I still don't understand it well-enough to be able to figure it out. Perhaps maybe I'll figure out the Github problem but I don't want to do that either.
Built With
- chatgpt
- claude
- css
- html
- javascript
- markdown
- python
- replit
- replitai
- vscode

Log in or sign up for Devpost to join the conversation.