What's the difference between high and low level prgramming?

Sharky Forums


Results 1 to 14 of 14

Thread: What's the difference between high and low level prgramming?

  1. #1
    Hammerhead Shark
    Join Date
    Aug 2001
    Posts
    2,240

    Question What's the difference between high and low level prgramming?



    ------------------
    Athlon TB 800MHz
    Abit KT7a-RAID
    250W PSU, Enlight Case
    512MB PC133 SDRAM
    30.7GB IBM Deskstar 7200RPM
    32MB Diamond Viper770 Riva TNT2
    Yamaha 6416 CDRW (SCSI)
    16x Pioneer 106s DVD-ROM
    52x LG Electronics CDROM
    SB Live! 1024
    Creative FPS1000 Speakers
    | AMD64 3000+ (skt 754)| 256MB Sapphire Radeon 9600XT | MSI K8N Neo Platinum | 450W Antec SP-450PGB PSU |Corsair 1024MB CMX1024-3200C2PT + TwinMOS PC3200 512MB CL2.5 | 80GB WD SE HDD (8MB Cache) | 180GB IBM/Hitachi 180GXP HDD | NEC 2500A DVR+-RW | Creative FPS1000 Speakers |

  2. #2
    Tiger Shark hydrobond's Avatar
    Join Date
    Oct 2001
    Posts
    516

    Post

    I don't know the exact difference but i can give you examples. Assembly is a low level language and C/C++ is a high level language. Hope this helped a little.

    ------------------
    1.1Ghz Thunderbird - not overclocked
    Asus A7V
    256MB Micron RAM
    2 Maxtor 7200 30GB - want to stripe :-) (the card is on it's way!)
    1 Seagate 7200 30GB
    Elsa Gladiac 64MB GeForce 2 Ultra
    Sony E400 19"
    Sound Blaster Live 5.1
    Cambridge Sound Works 5.1
    Yamaha 16/10/40
    12x DVD
    Iomega Zip 100
    HP LaserJet 2200D (B&W)
    Fan Bus (home made)
    Window (home made)
    Handles

  3. #3
    Reef Shark Nephalim's Avatar
    Join Date
    Nov 2000
    Location
    Michigan
    Posts
    463

    Post

    Originally posted by hydrobond:
    I don't know the exact difference but i can give you examples. Assembly is a low level language and C/C++ is a high level language. Hope this helped a little.
    Assembly is a low level language because it is closer to what the processor actually understands(binary or machine code). C++ can actually be called a "mid" level language because it has features that are further from machine code, but also has features that are rather low level. An example of a high level code might be VB, Java or (if you consider it a coding languages) SQL.

    Higher level languages seem to be more "English" like and low level languages seem to be more arithmetic like.

    ------------------
    ~ And that is my humble opinion.

    When I was a boy I was told that anybody could become President. Now I'm beginning to believe it. - Clarence Darrow

    The greatness of a woman’s power is measured in the size and amount of the balls she clutches in hand. -Me

    "Tink"
    1 GHz Tbird on A7V, 384MB PC133 RAM, Samsung 19" 900IFT, Radeon 64MB DDR VIVO, SB Live! MP3+, 42.9GB IBM HDD, Plexwriter 8/4/32, 3C905CTXM nic, Intellimouse Explorer
    ~ And that is my humble opinion.

    When I was a boy I was told that anybody could become President. Now I'm beginning to believe it. - Clarence Darrow

    The greatness of a woman’s power is measured in the size and amount of the balls she clutches in hand. -Nephalim

    "Tink"
    1700+ XP on A7N8X, 768MB PC2700 DDRRAM, Samsung 19" 900IFT, Radeon 64MB DDR VIVO, SB Live! MP3+, 42.9GB IBM HDD, Plexwriter 8/4/32, 3C905CTXM NIC

    "Hermes"
    Dell Inspiron 8200, 1.7 GHz P4, 512MB DDRRAM, 30GB HDD, DVDROM, Geforce4 Go 64MB

  4. #4
    NullPointerException rock's Avatar
    Join Date
    Sep 2000
    Location
    York, PA
    Posts
    6,203

    Post

    In terms of "Generation":

    Assembly is a 2GL (second generation - it's only 1 step removed from actual 0s and 1s). Instructions here are cryptic register manipulations.

    FORTRAN, C, C++, etc. are all 3GL. They compile to native instructions and can access memory directly. Instructions here are your regular IF, FOR, math/array ops, etc.

    PV-WAVE, IDL, MATLAB, etc. are 4GL. They compile usually just to byte code and are interpreted. Usually you cannot get to RAM. Instructions here usually include 3GL stuff in addition to high-level ones like "PLOT" and they're typically array-based.

    There are 5GLs too, but these are usually a 4GL with some DB connections added in (even though the 4GLs I listed above all have DB connections too).

    Not sure where scripting languages fall in this setup. Also, I was going to stick Java in with the 3GL, but it doesn't compile to native code: you need a JVM to interpret it (like a 4GL), but it really isn't a 4GL....

    ------------------
    The price of freedom is high.

    Open Source is free like a puppy is free.

    It's only when you look at an ant through a magnifying glass on a sunny day that you realise how often they burst into flames.

    Understanding Evolution

  5. #5
    Hammerhead Shark
    Join Date
    Aug 2001
    Posts
    2,240

    Post

    So what category would VBA and SQL fall under?

    ------------------
    Athlon TB 800MHz
    Abit KT7a-RAID
    250W PSU, Enlight Case
    512MB PC133 SDRAM
    30.7GB IBM Deskstar 7200RPM
    32MB Diamond Viper770 Riva TNT2
    Yamaha 6416 CDRW (SCSI)
    16x Pioneer 106s DVD-ROM
    52x LG Electronics CDROM
    SB Live! 1024
    Creative FPS1000 Speakers
    | AMD64 3000+ (skt 754)| 256MB Sapphire Radeon 9600XT | MSI K8N Neo Platinum | 450W Antec SP-450PGB PSU |Corsair 1024MB CMX1024-3200C2PT + TwinMOS PC3200 512MB CL2.5 | 80GB WD SE HDD (8MB Cache) | 180GB IBM/Hitachi 180GXP HDD | NEC 2500A DVR+-RW | Creative FPS1000 Speakers |

  6. #6
    NullPointerException rock's Avatar
    Join Date
    Sep 2000
    Location
    York, PA
    Posts
    6,203

    Post

    Originally posted by bras0782:
    So what category would VBA and SQL fall under?
    Good question. I've thought of VBA as pretty much a macro scripting language, but you can do some nice things with it. It's going to sit on top of Office, though. Same deal with SQL, it's going to be sitting on a DB and requires an interpreter. I guess I'd put these guys at about 3.5, but that's just a guess since I don't use either enough to have a great feel.

    ------------------
    The price of freedom is high.

    Open Source is free like a puppy is free.

    It's only when you look at an ant through a magnifying glass on a sunny day that you realise how often they burst into flames.

    Understanding Evolution

  7. #7
    Tiger Shark DeadKen's Avatar
    Join Date
    Oct 2001
    Location
    Seattle
    Posts
    800

    Post

    Originally posted by rock:
    In terms of "Generation":

    Assembly is a 2GL (second generation - it's only 1 step removed from actual 0s and 1s). Instructions here are cryptic register manipulations.

    FORTRAN, C, C++, etc. are all 3GL. They compile to native instructions and can access memory directly. Instructions here are your regular IF, FOR, math/array ops, etc.

    PV-WAVE, IDL, MATLAB, etc. are 4GL. They compile usually just to byte code and are interpreted. Usually you cannot get to RAM. Instructions here usually include 3GL stuff in addition to high-level ones like "PLOT" and they're typically array-based.

    There are 5GLs too, but these are usually a 4GL with some DB connections added in (even though the 4GLs I listed above all have DB connections too).

    Not sure where scripting languages fall in this setup. Also, I was going to stick Java in with the 3GL, but it doesn't compile to native code: you need a JVM to interpret it (like a 4GL), but it really isn't a 4GL....

    I always thought this 3GL/4GL stuff was a load of non-sense.

    More marketing then reality.

    You pointed out the problem classifying Java, but remember P-Code? So Pascal was a 4GL which moved up to being a 3GL?




    ------------------
    I want an OS, not a hobby...
    I want an OS, not a hobby...

    Theres nothing more pathetic then someone who wears non-matching socks on purpose.

  8. #8
    NullPointerException rock's Avatar
    Join Date
    Sep 2000
    Location
    York, PA
    Posts
    6,203

    Post

    Originally posted by DeadKen:
    I always thought this 3GL/4GL stuff was a load of non-sense.

    More marketing then reality.

    You pointed out the problem classifying Java, but remember P-Code? So Pascal was a 4GL which moved up to being a 3GL?
    From what I recall of Pascal (er, this is back in high school on an Apple IIe), I wouldn't classify it as a 4GL.

    The thing with 4GLs generally is they can be as powerful or as weak as you want them to be. The ones I listed could all be used either as a scripting language to do graphics or as a replacement to nearly any 3GL as a number crunching/GUI solution too. I agree that the terminology is just marketing mumbo-jumbo, but there's certainly a lot of different levels of programming.


    ------------------
    The price of freedom is high.

    Open Source is free like a puppy is free.

    It's only when you look at an ant through a magnifying glass on a sunny day that you realise how often they burst into flames.

    Understanding Evolution

  9. #9
    Expensive Sushi
    Join Date
    Dec 2001
    Location
    Cincinnati,OH,USA
    Posts
    5

    Post

    Programming at a low level means each line of code consists of an instruction followed by one or two operands. You are basically loading hexadecimal values into specific memory adresses or comparing two values and branching based on the outcome. Low level languages like assembly have no abstractions such as data types, objects, or lovely pre-built visual components for you to click and drag into your application.


  10. #10
    . ksuohio's Avatar
    Join Date
    Oct 2001
    Location
    Atlanta, GA
    Posts
    2,721

    Post

    It's somewhat like low level and high level management in a company. The low level guys are the micro managers over the company. They have direct visibilty to the structures of the company and see things work first hand. The high level management uses all of the lower level managers to complete a task. They don't typcially work with the fine details and their orders are general, but still can help complete a task. The same holds true for programming languages on computers.

    Sorry if that wasn't detailed as to the difference, but I though I'd add my 5th grade explanation to it

    ------------------
    -Athlon AMD XP 1600+
    OC at 1524 mhz 145 fsb
    -Abit KG7 - Raid
    -512mb Registered DDR Ram
    -GeForce3 Ti 200
    OC at 220/500
    -DVD
    -Sony CDRW
    -13 Gig IBM HD
    -SoundBlaster 16 PCI
    -Good 'Ole Dell Keyboard
    -MS IntelliMouse
    -19" Trinitron Monitor
    -Home Audio/Video Speaker System
    -RoadRunner Cable Internet
    -Windows XP Pro
    ---------------------------------------------------------------
    - Asus M50 Laptop - C2D T9300 - 4 gig RAM - Radeon HD 3650 - Vista x64 Ultimate

    - Intel i7-3770K - Asus P8Z77-V DELUXE - 32gig RAM - Radeon HD7970 Ghz - Plextor M3 256GB/120GB OCZ Vertex3
    - LG BluRay - Razor Blackwidow Ultimate Keyboard - Logitech G9x
    - HP ZR2740w/Asus LCD - W7 Ultimate

    ---------------------------------------------------------------

  11. #11
    Hammerhead Shark
    Join Date
    Aug 2001
    Posts
    2,240

    Post

    Originally posted by ksuohio:
    Sorry if that wasn't detailed as to the difference, but I though I'd add my 5th grade explanation to it

    I feel like i'm at nursery all over again (I guess that's kindergarden for you non-brits)

    Ok, some of the computation stuff we did in my degree included compiler languages which used stuff like PUSH, PULL, STACK, etc... to manipulate memory contents and carry out calculations. I guess that was low level programming. The stuff we used was very ancient, so maybe those procedures mentioned are outdated now.

    ------------------
    Athlon TB 800MHz
    Abit KT7a-RAID
    250W PSU, Enlight Case
    512MB PC133 SDRAM
    30.7GB IBM Deskstar 7200RPM
    32MB Diamond Viper770 Riva TNT2
    Yamaha 6416 CDRW (SCSI)
    16x Pioneer 106s DVD-ROM
    52x LG Electronics CDROM
    SB Live! 1024
    Creative FPS1000 Speakers
    | AMD64 3000+ (skt 754)| 256MB Sapphire Radeon 9600XT | MSI K8N Neo Platinum | 450W Antec SP-450PGB PSU |Corsair 1024MB CMX1024-3200C2PT + TwinMOS PC3200 512MB CL2.5 | 80GB WD SE HDD (8MB Cache) | 180GB IBM/Hitachi 180GXP HDD | NEC 2500A DVR+-RW | Creative FPS1000 Speakers |

  12. #12
    Sleeps with the Fishes
    Join Date
    Dec 2001
    Location
    Provo, UT, US
    Posts
    30

    Post

    Originally posted by hydrobond:
    I don't know the exact difference but i can give you examples. Assembly is a low level language and C/C++ is a high level language. Hope this helped a little.

    the difference is the separation from hardware to software...the more the language directly preforms specific hardware operations...such as w/ hexidecimal/machine code...the lower level it is, because while it is generally MUCH more efficient, than say...java, it is much harder to write in because each little data movement requires a full line of code. Here is a lab i did this past semester in binary/hex (they're pretty much the same...hex is shorthand sorta for binary just in case u don't know...)
    <<
    0x3000
    0x5260
    0b0101010010100000
    0x1270
    0x1241
    0x1270
    0b0001011011101111
    0b0001011011101111
    0b0001011011100011
    0b1001011011111111
    0xf023
    0x16ff
    0b0001001000000001
    0b0001010011000000
    0b0000010000010000
    0b0101000000100000
    0b0000111000000100
    0xf025
    >>
    i can't even remember what this lab did..but it is pretty much the lowest level of any language...as each instruction is performing and add or store function etc..and if you go up one more level you'll get machine code (full lab is wayyyyy to long to post..so here's a line)
    <<
    LEA R2, PAL ; Load .BLKW starting address to R2; this is
    >>
    This performs a LoadEffectiveAddress function on R2 and the label pal...this lab can check a users input to test if it is a palindrome...heh it seemed really difficult at the time...anyhow...next up may be 'fortran' or 'c'..i'm not sure..but java is even higher level than c or cpp because it is even harder/more separate than c++, because in c++ it is not THAT hard to convert stuff to machine code by hand..however in java, it's more obscure and thuse a whole different story...
    also, a rule is the higher level a language, the less efficient it will be able to run, but the tradeoff for the loss in efficiency is convenience and thus it is easier to make functions that do EXACTLY what you want them to do (a wider variety..)

    hope that helped ya...
    Later
    Tim

    ------------------
    ¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸ ¸.·´¯`·.¸¸.´|
    .·············. |
    ·TheTuRb0 R1G · |
    *·············* --------------------------. |
    2 x 256mb PC150 CoRsAiR | |
    *TEMP = Duron750
    1.4ghz AMD ATHLON AxIa {AyHjA} | |
    Abit KT7A-RAID | |
    Thermalright SK6 w/ 7K Delta, 85w Peltier | |
    2 x 40gb 7200rPm EiDE {QuAnTuM}{WD} | |
    Lian-Li PC68 | |
    MS Intellimouse Explorer {silver} | |
    MS Natural Elite | |
    ------------------------------------------´ |
    ¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸ ¸.·´¯`·.¸¸.·´

  13. #13
    Hammerhead Shark e_dawg's Avatar
    Join Date
    Jan 2001
    Location
    Earth, Western Hemisphere, North America, US, UT, SLC
    Posts
    2,628

    Post

    Originally posted by rock:
    Good question. I've thought of VBA as pretty much a macro scripting language, but you can do some nice things with it. It's going to sit on top of Office, though. Same deal with SQL, it's going to be sitting on a DB and requires an interpreter. I guess I'd put these guys at about 3.5, but that's just a guess since I don't use either enough to have a great feel.
    VBA and SQL are not programming languages.

    SQL is a Query Language, and is only used to retrieve/set/update/etc data in a database.
    VBA is a scripting language... Most people don't put these in the generation levels, but I'd say that no scripting language is below 4...

    My understanding of the GL system was that each level was built on the last... VB is a very good example of a 4GL to me -- it is completely written in a 3GL...

    So, machine code = 1GL (since it is basically a language in and of itself), ASM = 2GL because it was written in machine code, C/C++ = 3GL because it was written in ASM, VB = 4GL because it was written in C++...

    Simple as that... I have never even seen a 5GL... that would be so far removed that it would seem like it would get rather slow.

    This, of course, has absolutely nothing to do with the programmer generation, which is currently transitioning from the first to the second generation -- and we are good -- we grew up with computers around us everywhere... Why shouldn't we know them better?

    [This message has been edited by e_dawg (edited December 23, 2001).]

  14. #14
    Sushi
    Join Date
    Dec 2001
    Posts
    3

    Post

    Keeping it simple,

    Low Level requires knowing details about the processor (How it deals with I/O, its registers etc.) EX. Assembly and Machine code.

    High Level is more like an algorithm. EX. C/C++ Pascal Perl.

    I have also heard that some also classify Very High Level, doesnt require algorithms and memory managment as much as the High Level's do. EX. Prolog

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •