Could Chomsky’s idea of Universal Grammar apply to programming Languages?











As I continue to develop the ideas behind Feynlabs – I have many interesting conversations

One person remarked that the ideas I am trying to create are like ‘Chomsky’s idea of Universal Grammar’ but for programming languages ..

I was aware of Noam Chomsky but not with the idea of Chomsky’s universal grammar

In context of natural languages, Linguist Noam Chomsky made the argument that the human brain contains a limited set of rules for organizing language. In turn, there is an assumption that all languages have a common structural basis. This set of rules is known as universal grammar.

Universal Grammar is made up of a set of rules that apply to most or all natural human languages. Most of these rules come in the form of “if a language has a feature X, it will also have the feature Y.”

For example – If a language has a word for purple, it will have a word for red. (source Wikipedia)

So, question is: Can this idea be applied to learning of Programming Languages?

If you look at the third stage in our Kickstarter video (below) .. its the most complex i.e. the ability to look at a range of Programming Languages and paradigms and learn what is common across them so that you can learn any programming language (and in doing so, also Computer Science itself)

I believe that Computer Science has five characteristics

 1)      Computer Science is based on Computational thinking

2)      Computer Science is based on Tool making (as opposed to merely using tools)

3)      Like Mathematics , the value of Computer Science lies in applying it’s principles to other domains

4)      Programmability i.e. the ability to write code is a key element of Computer Science and

5)      In future, programming and algorithmic thinking will be much more common as value and innovation shifts to platforms i.e. more devices will be programmable

 To this, we are adding

1)      The ability to rapidly learn Computer Science(especially to accelerate the early stages of learning of Computer Science)

2)      A way to learn Computer Science by understanding the implementation of different programming Languages

3)      Understanding the new computer science syllabus for schools especially in UK, Europe and USA (currently)

 We now know the platforms and languages we are ‘abstracting’

 1) Python

2) Mathematica

3) R

4) C – C++

5) Processing (Arduino)

6) Lua

7) Haskell

8) touchdevelop

9) Javascript

10)Ruby on Rails framework

11) Java(Greenfoot)


 So, is it like Chomsky’s universal grammar?

I can see the analogy i.e. if a language has a feature X then it will also have a feature Y is very much aligned to my thinking


Image source – wikipedia