Now, that we have understood a program and a programming language, it is important here to learn about the rules to write them. Although our starting point is not a particular programming language, it is necessary to start with a particular abstraction of programming languages equipped with functions. Because every language will have its own way of declaring and evaluating a function. Moreover, it is better to remember a program in a form that is independent of quirks of languages. Hence, we will look at one such abstraction which is also considered as the elegant one, Lambda Calculus.
Historically, languages are composed of words. Words that are irreducible, meaningful but unambiguous atoms.