I have to thank my professor, Edward Yang who introduced me to the area of Programming Language, a lot. This is a complicated field in CS that gives you another view out of the current structure of the commonly-used object oriented structures. It turns out that now more and more new features in most programming languages are accomodating functional programming in them. I can’t say exactly that it’s useful, but it will definitely provide you another way to look at problems and, of course, new ways of problem solving.
When you design a programming language, what should you focus on? Syntax? Convenience? Well if you want a word, that is concept1. From my perspective, concepts are heavily mathematical. However, to select detailed concepts from these abstract mathematical concepts and implement them is hard, and it’s the core of programming languages.
Ideas in this introduction will be simple but may take long enough to absorb. I want to go on with the following concepts.
First class functions, pattern matching, types, monads, continuations, laziness.
A good programming language is a conceptual universe for thinking about programming.
– Alan Perlis