![]() |
|
C Programming Discussion - Printable Version +- Sinisterly (https://sinister.ly) +-- Forum: Coding (https://sinister.ly/Forum-Coding) +--- Forum: C, C++, & Obj-C (https://sinister.ly/Forum-C-C-Obj-C) +--- Thread: C Programming Discussion (/Thread-C-Programming-Discussion) |
RE: C Programming Discussion - The Real Slim Shady - 06-24-2014 (06-24-2014, 06:42 AM)ArkPhaze Wrote:Quote:but for decades it was a high-level language just because C is lower than the rest of them, doesnt make C low-level. it just makes it lower on the ladder of high level languages. asm can be done inline in C/C++/Objective C afaik, and probably others as well, that doesnt really make them low level either. the mere act of being an abstraction layer for other high level languages does not make it low-level either. the main point of difference is that low level languages interact directly with the hardware, high level languages dont. i conceded that you might consider it mid-level language merely because you have limited access, such as direct memory access. RE: C Programming Discussion - Aut•ono•mous - 06-24-2014 I love C, its really the only programming language I'd consider myself experienced in, but ultimately its my favorite. I think what hooks me on C the most is how easy it is to understand as a human, versus say Java. Besides the ease-of-use, C is awesome in the sense that it can communicate with your computer's hardware pretty painlessly allowing a lot of possibilities.
RE: C Programming Discussion - ArkPhaze - 06-25-2014 (06-24-2014, 07:12 AM)Geoff Wrote: just because C is lower than the rest of them, doesnt make C low-level. it just makes it lower on the ladder of high level languages. I never said it did, you should read my post once over again. You completely missed my point, then reinstate my point as though you're trying to tell me something new: "it just makes it lower on the ladder of high level languages." -- This is exactly what I was getting at. Quote:asm can be done inline in C/C++/Objective C afaik, and probably others as well, that doesnt really make them low level either. Why not? It's an accepted point against C being purely high level by most experienced programmers, and I too have been a programmer for some years now. It's a feature, but it's still part of the language, as to what defines C as a programming language in its own standard. Inline ASM is not some third party library, it is part of the language specs. You keep talking about low level though... I haven't been comparing C to a low level language period. I've been explaining how it contains low level features, and how it doesn't fit with the rest of the high level languages. Quote:the main point of difference is that low level languages interact directly with the hardware, high level languages dont Yes, but then are you trying to say that inline ASM can't interface with any registers or do anything on that behalf? RE: C Programming Discussion - The Real Slim Shady - 06-25-2014 (06-25-2014, 12:19 AM)ArkPhaze Wrote: I never said it did, you should read my post once over again. You completely missed my point, then reinstate my point as though you're trying to tell me something new: "it just makes it lower on the ladder of high level languages." -- This is exactly what I was getting at.clearly you need to reread my first response as well - that was the point i made in my first response on this thread. you seem to be arguing points ive already made now. (06-25-2014, 12:19 AM)ArkPhaze Wrote: Why not? It's an accepted point against C being purely high level by most experienced programmers, and I too have been a programmer for some years now. It's a feature, but it's still part of the language, as to what defines C as a programming language in its own standard. Inline ASM is not some third party library, it is part of the language specs.i was responding to someone who was saying its a stretch to call C a high level language when you got involved. by all definitions it is a high level language. its not as high as say Visual Basic, but its not a low level language. it may provide some low-level access through features like inline ASM - but its not low level itself. when you write code in C you are not directly accessing the hardware or giving machine instructions using C. Ive already said twice now that I can accept it being called a mid-level language but on a scale where there is only low and high, its definitely high. attitudes may change over the years, but a low level language is low - anything above it is high. this seems to be a complicated concept for some people. (06-25-2014, 12:19 AM)ArkPhaze Wrote: Yes, but then are you trying to say that inline ASM can't interface with any registers or do anything on that behalf? inline ASM isnt C, its ASM at this point i think youre just trying to beat a dead horse. RE: C Programming Discussion - invisal - 06-25-2014 Quote:but for decades it was a high-level language. merely because newer languages have gotten higher doesnt really change this. It does change it. If you were once called tall person because you are taller than most of the people, but when most of the people are taller than you now, you are no longer tall. There is no clear definition of high level programming language. This is definition from Wikipedia Quote:In computer science, a high-level programming language is a programming language with It just says "strong abstraction" but it does not specified how "STRONG". C might once considered "STRONG" in the past, but nowadays, most of the new language provides the stronger one. Most people will agree that C is mid-level programming language, but if there are only "low" and "high", there will be split opinion in half. In ten more year, most people will choose "low". This is what I see. RE: C Programming Discussion - The Real Slim Shady - 06-25-2014 (06-25-2014, 05:34 AM)invisal Wrote: There is no clear definition of high level programming language. This is definition from but there is a clear definition of low level programming. and since were using wikipedia... Quote:In computer science, a low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. Generally this refers to either machine code or assembly language. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware". This is not C RE: C Programming Discussion - invisal - 06-25-2014 Quote:that provides little or no abstraction from a computer's instruction set architecture. How "little"? Quote:Low-level languages can be converted to machine code without using a compiler or interpreter. By this definition, not even Assembly is a low level language. Quote:and the resulting code runs directly on the processor. Well, C output also run directly on the processor. RE: C Programming Discussion - The Real Slim Shady - 06-25-2014 (06-25-2014, 06:43 AM)invisal Wrote: How "little"?1s 1t not obv1ous? why 1s th1s so compl1cated? 1f you are wr1t1ng mach1ne spec1f1c code, 1ts low level. 1f you are wr1t1ng code that 1s comp1led and converted to mach1ne code, 1ts not. assembly may requ1re "convers1on" - but you are st1ll wr1t1ng mach1ne spec1f1c 1nstruct1ons. x86 assembly w1ll not run on an ArM processor that 1s what abstract1on from the hardware means. (06-25-2014, 06:43 AM)invisal Wrote: By this definition, not even Assembly is a low level language.Assembly 1s, str1ctly speak1ng, not comp1led. yes the concepts are s1m1lar 1n that 1t 1s converted to mach1ne 1nstruct1ons - but the d1fference be1ng that assembler code has corresponding cpu 1nstruct1ons and qu1te frankly can be converted w1thout a comp1ler. (06-25-2014, 06:43 AM)invisal Wrote: Well, C output also run directly on the processor. you mean the comp1led appl1cat1on? lol so is every other comp1led app. that doesnt make them low level. that comp1lat1on process 1s exactly the abstract1on we're talk1ng about regard1ng what def1nes a low and h1gh level language. a h1gh level language 1s not mach1ne spec1f1c code. 1t goes through a process to convert 1t to mach1ne spec1f1c code. assembler though 1s mach1ne spec1f1c. sorry about the 1's - several keys on my kb have stopped work1ng RE: C Programming Discussion - invisal - 06-25-2014 Quote:you mean the comp1led appl1cat1on? lol so is every other comp1led app. that doesnt make them low level. that comp1lat1on process 1s exactly the abstract1on we're talk1ng about regard1ng what def1nes a low and h1gh level language. a h1gh level language 1s not mach1ne spec1f1c code. 1t goes through a process to convert 1t to mach1ne spec1f1c code. assembler though 1s mach1ne spec1f1c. Yes, most programming language is compiled into machine code and run directly on the processor. It was a definition that you provided and now you denied your own definition. Geoff Wrote:Low-level languages can be converted to machine code without using a compiler or interpreter, and the resulting code runs directly on the processor. Quote:1s 1t not obv1ous? why 1s th1s so compl1cated? 1f you are wr1t1ng mach1ne spec1f1c code, 1ts low level. 1f you are wr1t1ng code that 1s comp1led and converted to mach1ne code, 1ts not. This is how you define "little abstract", but other might define it differently. Quote:C is considered a third generation programming language, since it is structured and abstracts from machine code (historically, no second generation programming language emerged that was particularly suitable for low-level programming). However, many programmers today might refer to C as low-level, as it lacks a large runtime-system (no garbage collection etc.), basically supports only scalar operations, and provides direct memory addressing. It therefore readily blends with assembly language and the machine level of CPUs and microcontrollers. This is taken from Wikipedia. So, like I have said previously, C might consider low-level programming language for some programmer and might consider high-level programming language for other. However, in 10 more years, most people will consider it "low-level" programming language. RE: C Programming Discussion - The Real Slim Shady - 06-25-2014 (06-25-2014, 09:31 AM)invisal Wrote: Yes, most programming language is compiled into machine code and run directly on the processor. you have clearly m1sunderstood me somewhere. (06-25-2014, 09:31 AM)invisal Wrote: This is how you define "little abstract", but other might define it differently. (06-25-2014, 09:31 AM)invisal Wrote: So, like I have said previously, C might consider low-level programming language for some programmer 1ts not really a matter of perspect1ve. 1t 1s what 1t is. 1 can say that the ocean 1s purple but that doesnt make 1t so. maybe 1 th1nk 1t 1s but 1f most of the rest of the world d1sagree's... C w1ll never be low-level. anyone that th1nks otherw1se clearly doesnt understand the system/arch1tecture. |