top | item 21009913

(no title)

pmikesell | 6 years ago

Why? I guess it's because some interpreted languages are also compiled?

"Compiled" traditionally means "not interpreted", or rather "compiled to machine code".

discuss

order

_ZeD_|6 years ago

because languages are specification, "books". they are not interpreted nor compiled. The most common implementations of the C language are compilers, yes, but "compiled" it's not a language property

oh, and btw: there are multiple c interpreters

mrmuagi|6 years ago

As another denizen of this chain, I still don't see the confusion at all.

> because languages are specification, "books". they are not interpreted nor compiled

Languages are a specification, and an implementation working together in perfect harmony, with absolutely no undefined behaviour at all, yes, keep walking now.

At least... the good ones try to be, cough ignoring small half baked interpreters and compilers I've had the pleasure of working with cough and never touching again.

> The most common implementations of the C language are compilers, yes, but "compiled" it's not a language property

It absolutely is a large part of the C language and worth teaching, and I'd only split hairs in a programming language theory class, this is a book that presumably leaves the reader with a better grasp of C than before. And arguing against it is an exercise in personal experience I assume (you have C interpreter experience I wager?).

Most people are still taught C in terms of a compiler like gcc, or clang. Source code in, object code (for a specific language specification, target architecture, etc) out. Think operating systems, kernel modules, executables, dll's, and, etc.

I never touched a C interpreter (but I am curious at such a beast), but I know that C is fine to be referenced as "compiled".

boomlinde|6 years ago

> because languages are specification

It just so happens that the specification in this case makes very specific demands on the translation environment, closely describing compilation step by step from source files into a program image.

Your "interpreted C" is only C in the loose sense that one may describe other non-compliant but roughly similar implementations.