The Missing Bigger Picture in CS Course(10/22)

NYCheng
2 min readOct 22, 2020

I still remember, when I started my Computer Science program as a freshman, I was bombarded with terminologies my professors expect me to understand, but I don’t. After 4 years of education and 15 months of working experience, I wanted to challenge myself to write articles in-depth, explaining the most fundamental concepts in computer science and even implements the contents I wanted to share.

As computer students, it’s very normal we write programming languages like C/C++, python, scala, and so on. However, I want to take a step back and ask a question. “What is a language?” I found a definition most interesting. Loosely speaking, it’s combinations of predefined characters. Therefore, for example, if the predefined characters are [‘0’, ‘1’], then [“0”, “1”, “01”, “10”…] could be a language. Of course, we can add constraints on it, so the language does not have infinite size vocabulary. Take English, for example, the predefined characters are [‘a’, ‘b’, ‘c’, ‘d’ ….’z’, ‘.’, ‘ ’, ‘!’….] and the whole vocabulary combined with punctuation marks makes it English.

Then, we can go on to ask, is every language the same? Can all the problems be described in all possible languages? Is French more romantic than English? Is English more compact than Chinese? Or is math more precise than German? Take a scenario, Alice owes Bob 3 million dollars. Alice returns 1 million to Bob. If Bob wants to remind Alice that she still owes him money, what can he say? He could say, “You still owe me a lot of money”(English-ish), which I believe has more emphasis on the emotion. He could also say, “you still owe me 2 million dollars”(math-ish), which is more base on facts. The language you choose determines the outcome.

I want to initiate a very bold attempt, which is creating my own language. I want to create a language that is tailored to my need. My need is simple, I want to be simple enough for a freshman or sophomore to read yet valuable enough for junior or senior to study. I don’t want to scare anyone with millions lines of codes or complex document.

By this time, as a computer science student, you should be thinking about a lot of things. For example, how are you going to “compile”? What are the “reserved” words? What is the benefits of this language, if it ever come true, compared to C/C++, python…etc.?

To Be Continued…

--

--