3 ms·
"Language as given" seems to mean that the language provides a level of abstraction that the programmer is not intended to break, and "language as medium" means
by noahl 15y ago
"Language as given" seems to mean that the language provides a level of abstraction that the programmer is not intended to break, and "language as medium" means that the language is a means of manipulating a lower-level structure, which the programmer is supposed to be aware of.
That's also completely incorrect for the way people use C nowadays. You use C because you want to control the machine, and people write their code based on machine word size, caches, etc.
- iskander 15y agoAren't languages always defined in terms of some semantics or execution model? I guess I don't see why Haskell is more "given" than CL.
- derleth 15y agoI think things like the macro system and the meta-object protocol are examples of meta-linguistic hacking you can do in CL but not Haskell.
- iskander 15y agoAhh, I see, so languages "as given" are those with poor support for metaprogramming? Where would this sort of distinction place Template Haskell, MetaOcaml, or even C++ templates?
- noahl 15y agoYeah, but sometimes programmers ignore that. For instance, C is defined in terms of chunks of memory that are all the same, but the way people actually write C is by thinking of cache line sizes and disk-read chunks, which mean that all chunks of memory are not the same. The alternative is to write your programs using the model provided and trust that they will be fast enough. I think that's how Haskell is written now, but I'm not sure. In either case, though, this is a property of how the language is used rather than the language itself, at least as I understand what he means. I have no idea about the Haskell/CL thing - I don't know much about how either language is used.
- Someone 15y agoHm, I read "language as given" as that programmers use the language to write their programs, whereas "language as medium" implies using the language to write a language (to write a language,...) to write their programs in. Of course, one can argue that is just a gradual difference. After all, any sufficiently advanced C program will contain half of Common Lisp (or use arrays of function pointers to get half a Forth)