Източник на изображението: pixabay.com
Написах този блог, като се има предвид, че хората, които ще прочетат това, са абсолютни начинаещи. Хората, които имат произход, имам предвид, че не точно технологичен произход всъщност ще е трудно да започнат да учат програмиране, когато няма кой да ги ръководи. По този начин написах този блог като любезност към тях. И така, като говорим за езици, какво точно е език на високо ниво и език на ниско ниво? Защо дори се наричат така? И доколко те се различават един от друг?
Излишно е да казвам, че съм обхванал всички в този блог.
Инфографика на високо ниво срещу езици с ниско ниво
Какво е езици на високо ниво?
Трябва да сте нещо Какво е език на високо ниво? но ми кажете, че са по-лесни за разбиране и са лесни за използване. С помощта на тези езици човек може да пише приложения, които са преносими на различни платформи (като Linux или Windows) и е независим от всяка архитектура (като не-Intel ARM или скандалния Intel). Пример за език на високо ниво, писане на програма в python, която по подразбиране работи във всяка Linux система, а след това просто я компилира във всеки exe, използвайки py2exe и след това я стартира на Windows.
Подобни примери са Python, C, Fortran или Pascal. Такива езици се считат за език на високо ниво, тъй като са по-близки до човешките езици и много по-далеч от машинните езици. Когато казвам човешки език, нямам предвид това, което говорим в ежедневния си живот. Това означава, че кодът е нещо, което можем да разберем, като знаем някои основи в програмирането. Написаният код е почти четим от хората, нещо, което може да се чете и произнася.
Следват някои примери за машинен език за разпечатване на проста програма на екран във Fortran и C.
Във Фортран:
program NewProgramF90
write(*, *) "This is a printed program"
end program NewProgramF90
Сега можете да го компилирате, като използвате:
gfortran newprogram.f90 -o newprogram -f90-gcc
А след това просто го пуснете.
Подобна програма в C:
#include
main()
(
printf("This is a printed program");
)
За чисто начинаещите това е най-лесното, което може да се получи.
Но тъй като говорим за компютри, за компютър това е трудно да се разбере. Така че за да направите това разумно за компютрите и да стартирате програма, създадена с език на високо ниво, тя трябва да бъде компилирана в машинен език.
Източник на изображението: github.com
И тук се намира езика на ниско ниво. За разлика от преди, където имаше само няколко езика на високо ниво, днес има n брой езици на високо ниво като C, Cobol, FORTRAN, Pascal, Java, Perl, Python, PHP, Ruby, C ++, BASIC и Visual Basic,
Какво представляват езиците на ниско ниво?
Езици от ниско ниво - онези езици, които са изключително близки до машинния език. Те са известни и като езици за сглобяване. Най-близките езици след монтажа до машинния език са C и C ++. Някои хора дори наричат C и C ++ като езици на ниско ниво. Машинен код е известен като ниско ниво, тъй като за разлика от езиците за програмиране на високо ниво, той не се нуждае от нищо друго, като компилатори или нещо подобно. Тя работи директно на процесора и те са изключително специфични за архитектурата.
Езиците от ниско ниво са по-подходящи за разработване на нови операционни системи или писане на кодове на фърмуер за микроконтролери. Те могат да направят всичко с малко упорита работа (всъщност много усилена работа, за да бъдем конкретни), но очевидно няма да искате да напишете някакво основно приложение в нея. Подобен е случаят със C (Всъщност наричан Cee). C всъщност е много обширен език за начало. Тя ви позволява да се регистрирате директно и да давате незабавен достъп до различни места в паметта.
Но в същото време има и много конструкции, които позволяват на хардуера да зареди абстракция. Честно казано, C и C ++ двойно представляват различни езици, тъй като повечето езици са взели своите библиотеки от тях. На практика и C, и C ++ са ниско ниво, както ви казах по-рано, тъй като писането на приложения на корпоративно ниво е доста трудно. Но теоретично и двамата всъщност са езици на високо ниво.
Препоръчителни курсове
- Професионален курс по ИТ сигурност
- Ruby on Rails пакет за обучение
- Професионален CSS курс
- Онлайн курс HTML5 и CSS3
Характеристики на езиците на високо и ниско ниво:
Нещото е, че всеки път ме питат в различни интервюта и други места, които харесвам най-доброто или високо ниво на програмиране. Струва ми се, че няма такова нещо като най-доброто. Отговорът е, че и двамата имат своя специалност и не можете да замените една с друга. Така всъщност ми харесват и двете.
Програмирането на ниско ниво е предизвикателство и изисква много опит и знания. Характеристиките на езиците на високо ниво са местата, където се осъществяват всички творчески неща, т.е. приложения, които хората използват в ежедневния си живот и могат да бъдат отстранени грешки по много по-лесен начин, отколкото при ниско ниво. И тук можете да работите с изключително нови технологии, тъй като много от тези езици непрекъснато се надграждат поради подкрепата на общността.
Ако поставите под въпрос кодиращи езикови кодери на високо ниво по отношение на това, което харесват, отговорът, който ще получите, ще бъде далеч от това, което искате. Няма да ви кажат кое е по-добро.
Вероятно ще кажат, че са по-страстни към конкретен език на високо ниво и не всички от тях. Не знам, че това се случва. Най-известните примери са Python и Ruby и ако им покажете някои програми, написани на събрание, тогава вероятно ще отидете hasta-la-vista.
Източник на изображението: mathworks.com
Това, което всъщност е превъзходно за много езици на високо ниво, е, че те попадат в хибридна категория. Например, python е изключително обектно ориентиран, но в същото време поддържа и затваряния и първокласни функции. Макар и да не е толкова мощен като Scala, но има способността да представя повече или по-малко неща като този на чисто език.
Езиците на високо ниво обикновено са бавни в сравнение с езиците на ниско ниво. Това е така, защото езиците на високо ниво имат много абстракции и слоеве код, преди да достигнат до самия хардуер, докато, тъй като машинният код е по-близо, той всъщност бързо обработва и връща изхода. Едно парче код в Python най-вероятно бива преведено в хиляди редове от машинни думи.
Разбира се, езиците на високо ниво са наравно, когато не е необходима сурова производителност, тъй като не можете да развивате толкова стабилни и големи приложения на ниско ниво, колкото на високо ниво. Това е едно, което си заслужава да се помни.
C програмиране - объркване на ниско ниво / високо ниво
Въпреки че C има много характеристики, подобни на тези на Pascal Language, понякога той все още се счита за език на ниско ниво, причината е, че поддържа операции на битове, указатели и директен достъп до паметта. C всъщност е език на високо ниво с приобщаващите характеристики на ниско ниво. Това е основната причина, поради която програмистите зависят от C над всичко за неговите непобедими качества.
Може да изглежда странно, че макар и да се третира като език на ниско ниво, той е изключително преносим. Фанатично казано, C всъщност е разширено, за да използва хардуер в максимални граници.
Езикът на монтажа, от друга страна, едва ли е преносим. Въпреки това, опитът да се постигне преносимост е голяма работа в случай на ниско ниво, особено в случая на Java, която работи на JVM, т.е. на виртуална машина. C или сборка, работеща във VM, никога няма да има чист достъп до хардуера.
За да бъдем по-точни, езикът става ниско ниво, ако е специално структуриран да работи директно на хардуера. Езиците на ниско ниво имат много по-малко синтаксис, за разлика от езиците на високо ниво, които имат много кодове.
Езици с ниско ниво, които позволяват пълен достъп до хардуера, всъщност биха били лош избор за писане на проекти.
Кога да използвам ниско ниво?
Машинен код изглежда така, който работи изключително бързо, тъй като е много близо до хардуера.
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3
Горе тук е функция, написана за 32-битова архитектура, т.е. x86 машинен код за изчисляване на числото на Фибоначи.
Писането на машинен код е безспорно доста дразнещо, защото изисква проверка на цифрови кодове от време на време за всяка друга инструкция, която се изпълнява. Кой по дяволите има време за това? И това е причината за програмирането на ниско ниво.
Но ако попитате за програмиране на ниско ниво на програмисти от високо ниво, отговорът, който ще получите, е този:
Източник на изображението: pixabay.com
заключение
Езиците на ниско ниво имат допълнително предимство, като губят контрол върху процесора, но техните кодове са изключително трудни за разбиране и отстраняване на грешки от колегите програмисти. Всяко друго семейство на архитектурата има собствен набор от език за сглобяване, което означава, че кодът, написан за едното, е невъзможно да се изпълнява от другия. Което накратко означава, че кодът не е преносим.
Предимствата на езика на високо ниво са, че езиците от високо ниво са изключително преносими от друга страна и те се използват предимно за писане на софтуер, който може да работи на множество платформи и архитектури. Нито един от двамата не може да се замени един друг, защото двамата са две страни на една и съща монета.
Препоръчителни статии
Ето няколко статии, които ще ви помогнат да получите повече подробности за езиците на високо ниво спрямо езиците на ниско ниво, така че просто преминете през линка.
- Най-важни съвети Haskell език за програмиране
- HTML5 и Flash - Намерете разликите
- Обработка на текст срещу обработка на естествен език - топ 5 сравнения
- 12 най-добри стъпки за инсталиране на R Programming Language (Бързо ръководство)
- 8 Най-добрият език за програмиране на мобилни приложения, който трябва да знаете
- Важни неща, които трябва да знаете за Haskell Programming Language