That is, programming is the process of gradually debugging a program until it does what you want. The idea is that you should always start with a working program that does something , and make small modifications, debugging them as you go, so that you always have a working program. For example, Linux is an operating system that contains thousands of lines of code, but it started out as a simple program Linus Torvalds used to explore the Intel 80386 chip. In later chapters I will make more suggestions about debugging and other programming practices. Natural languages are the languages that people speak, like English, Spanish, and French.
Formal languages are languages that are designed by people for specific applications.
For example, the notation that mathematicians use is a formal language that is particularly good at denoting relationships among numbers and symbols. Chemists use a formal language to represent the chemical structure of molecules. As I mentioned before, formal languages tend to have strict rules about syntax. Also, H 2 O is a syntactically correct chemical name, but 2 Zz is not. Syntax rules come in two flavors, pertaining to tokens and structure.