Kakva je razlika između jezika visoke i niske razine?


Odgovor 1:

To je ista razlika kao između:

"Donesite mi novine."

i

„Pomaknite lijevu nogu ispred sebe, pa desnu, ponavljajte dok ne dođete do vrata. Zatim aktivirajte ruku i posegnite za kvakom na vratima. Pomičite prste i sklopite ruku oko nje. Povucite je prema dolje dok ne čujete klik i čini se da se kvaka malo daje. povuci vrata prema sebi. Pomaknite lijevu nogu natrag i napravite mjesta za vrata. Kad je dovoljno mjesta za vas, pređite preko okvira vrata. Okreni se za 180 stupnjeva. Aktivirajte ruku i posegnite za vanjskom ručicom. Pomičite prste i sklopite ruku oko nje. Povucite ga prema sebi dok ne osjetite da je zaključan. Zakrenite za 90 stupnjeva u smjeru kazaljke na satu. Pomičite jednu nogu nakon druge dok ne dođete do redakcije. Zatražite novine. Dosegnite u džep za novac i platite 2 dolara. Uzmi novine. Okrenite za 180 stupnjeva. Pomičite noge jednu ispred druge ... "

Shvaćate kako se pjesma odvija.

Imajte na umu da sam se u jednom trenutku dosadio i počeo koristiti "složene" glagole za kretanje, koji predstavljaju skup drugih radnji, poput "zgrabiti", a koji bi se zauzvrat mogao podijeliti na "Pomakni ruku dok bla bla ...".

Zapravo, čak i „pomicanje ruke“ moglo bi se podijeliti na jednostavnije postupke, a svaki put kada se razdvojite, gubite sažetost, tj. Morate koristiti više verbalni jezik, ali dobivate u preciznosti jer biste mogli definirati koji je svaki mišić čini, točno.

Na kraju, ako idete dalje dolje, dobit ćete opis električnih signala koje živci moraju dostavljati mišićima. Rekao bih da bi ovaj posljednji opis bio sličan takozvanom "strojnom jeziku", rezultat kompilacije i prethodne izjave su - u ovoj metafori - programski jezici s višeg na niži nivo.

TL; DR:

  • Programski jezik visoke razine kratak je, ali se oslanja na neki drugi dio softvera za proširivanje kratkih naredbi u detaljne upute na štetu koliko detaljna i prilagođena može biti svaka vaša naredba. Jezik niske razine omogućuje vam da izričito obradite svaki detalj operacije se izvodi na štetu veličine izvornog koda i - mogućnosti čitljivosti.

Ako želite primjere, Python vam pada na pamet za visoku razinu: on vam oduzima mnogo detalja, npr. upravljanje memorijom (možete samo inicijalizirati varijablu i koristiti je, a kad vam više nije potrebna, netko će je riješiti, nema potrebe brinuti), zbog čega je dobar jezik za učenje algoritama: svoju logiku možete implementirati bez brige o nekim detaljima implementacije.

S druge strane, C je prilično nizak nivo jezika, jer vas ne apstrahira od pojedinih detalja (opet, najbolji primjer je upravljanje memorijom i prisustvo pokazivača) i zato je dobar jezik za učenje ako vaš je cilj razumjeti unutarnja računala koja rade. Naravno da se možete spustiti malo prije nego što pogodite strojni kod i elektroničku fiziku zajedno s Montažom.