PS I synthesize here in my own words what K&R teach, re-write all their example programs, character by character, solve all the C exercises they hand out. I comment to what K&R teach cursively. I do not copy-paste anything from the book!
TCPL 2Ed - Page 001 to 001 - 1.88% Completion
Introduction
K&R state that C is a ‘general purpose’ programming language, closely related to the UNIX operating system, since this system and most of the programs that ran on it where created with it.
Nevertheless the language is not tied to any operating system specifically since it is always translated to hardware specific machine language for implementation. This is accomplished by compilers, which are hardware specific and serve as a mediator between C and any hardware they are made for.
C is often called a ‘system programming language’ because it is especially useful for this purpose, but it is also well suited for writing major programs for most other forms of application.
Many of the concepts used in C originate from the language BCPL, developed by Martin Richards (1967). They entered C through B, an intermediate language written by Ken Thompson in 1970, for the first UNIX system that he developed for the DPD-7 computer. B was found to be too slow for UNIX, hence Dennis Ritchie expanded it and once this new version evolved into something unique on it's own, it became called C by the Bell Labs team at T&T.
BCLP and B are ‘typeless’ languages.
What I currently understand of what is meant by the term ‘type-less’ is that languages that are called as such do not have a formal distinction between types of values. This means that the programmer is responsible to keep order among values, since the language does not do it for him. C has types, but they are rather helpful than that they are important. Therefor C is sometimes called a weak-typed language.
TCPL 2Ed - Page 001 to 001 - 1.88% Completion
Introduction
K&R state that C is a ‘general purpose’ programming language, closely related to the UNIX operating system, since this system and most of the programs that ran on it where created with it.
Nevertheless the language is not tied to any operating system specifically since it is always translated to hardware specific machine language for implementation. This is accomplished by compilers, which are hardware specific and serve as a mediator between C and any hardware they are made for.
C is often called a ‘system programming language’ because it is especially useful for this purpose, but it is also well suited for writing major programs for most other forms of application.
Many of the concepts used in C originate from the language BCPL, developed by Martin Richards (1967). They entered C through B, an intermediate language written by Ken Thompson in 1970, for the first UNIX system that he developed for the DPD-7 computer. B was found to be too slow for UNIX, hence Dennis Ritchie expanded it and once this new version evolved into something unique on it's own, it became called C by the Bell Labs team at T&T.
BCLP and B are ‘typeless’ languages.
What I currently understand of what is meant by the term ‘type-less’ is that languages that are called as such do not have a formal distinction between types of values. This means that the programmer is responsible to keep order among values, since the language does not do it for him. C has types, but they are rather helpful than that they are important. Therefor C is sometimes called a weak-typed language.