Wednesday, January 19, 2005

Programming languages and translators

One of my major reasons to opt for graduate studies is to learn the science behind programming languages. This thought blossomed 4 the first time when I was attending a training class in Java in my prev. organization. My tutor was Mr. Sanjay Kumar Mitra, a very nice gentle man with sound knowledge in Java. When he was talking about objects and primitive datatypes like 'int', the similarity in their implementation in Java and the fact that you can't do everything with an 'int' that you do with an object, added more mystery.. I wondered how the designer of the language would have designed it and whatz the science behind it?

With my experience as a software engineer, I felt that every software developer should have a good understanding of the different paradigms of progamming languages. Because this is an ever-growing field and it becomes compelling for us to be updated with the technical advancements thoughout our career. The understanding of the paradigms and the root of their conceptualization, is the key to adapt to any new programming language down the line.

Now.. I hope this course 'Programming languages and translators' will address that. In this blog I'll give an introduction abt what I'll learn through this course.

Yep.. so this is what I'll learn from this course.
  1. The major classes of programming languages.
  2. How to specify formally the meaning of a language - to people and to the computer. (type derivation etc.,)
  3. How to design and implement a language?
  4. Three powerful concepts - Abstraction, Recursion and Transformation.
Yeah! I am going to learn how to design and implement a language.. now doesn't that sound cool?

and basically there are three major themes in this course.
  1. How do we describe a language to ourselves?
  2. How do we describe a language to the computer? - how the computer understands what we typed in? (parsing)
  3. Once the computer has understood, how it does what we said? (interpreting and compiling)
and I am gonna learn all these through a new language called 'OCaml' - Objective Caml. Itz a functional language .

so.. now comes the question, why a functional language? and why not an object oriented programming language which is predominant in the market?

Because functional languages are step ahead and have all the features of procedural and OOP languages. So learning through this language, we can conceptualize all other paradigms.

No comments: