Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When did people first start thinking 'C is portable assembler'?

Tags:

It seems to be an 'accepted concept' in the popular culture of programming languages that 'C is portable assembler'. I have first heard this at least 15 years ago. But when did it really become part of the popular culture?

Note: if you don't agree that 'C is portable assembler', please just skip this question. This question is about 'popular culture of programming'. I'll add a comment to this question which you can up-vote for those who disagree with that statement.

like image 597
Jacques Carette Avatar asked Jun 14 '10 19:06

Jacques Carette


People also ask

Why is C called the portable assembler?

The concept of C being "portable assembler" stems for the simple fact that most "pop-culture level" C programmers are too lazy to learn the language "hard" - academic - way, and instead prefer to "learn" from practice, in most part by associating the language commands with the implied underlying machine code.

When was the first assembler invented?

In late 1948, the Electronic Delay Storage Automatic Calculator (EDSAC) had an assembler (named "initial orders") integrated into its bootstrap program. It used one-letter mnemonics developed by David Wheeler, who is credited by the IEEE Computer Society as the creator of the first "assembler".

Is C portable assembler?

In effect, C is being used as a portable compiler target language. It offers a simple and effective way of avoiding the need to re-implement effective register allocation, instruction selection, and instruction scheduling, and so on, all for a variety of target architectures.

When was assembler language invented?

The first assembly languages were developed in the 1940s, and although modern programmers spend very little time dealing with assembly languages, they nevertheless remain essential to the overall functioning of a computer.


1 Answers

From the Introduction to the first edition of The C Programming Language:

C is a relatively "low level" language. This characterization is not pejorative; it simply means that C deals with the same sort of objects that most computers do, namely characters, numbers, and addresses.

[ ... ]

Again, because the language reflects the capabilities of current computers, C programs tend to be efficient enough that there is no compulsion to write assembly language instead.

[ ... ]

Although C matches the capabilities of many computers, it is independent of any particular machine architecture, and so with a little care it is easy to write "portable" programs ...

At least the general idea of combining portability with the general capabilities of assembly language seems to have been there almost from the beginning.

like image 75
Jerry Coffin Avatar answered Dec 06 '22 16:12

Jerry Coffin