Има много начини за разграничаване на езиците за програмиране. Като начало те попадат в различни парадигми: функционални, обектно-ориентирани и други.

Можете също така да класифицирате език за програмиране по неговия метод на превод, нещо, което има голямо влияние върху производителността на езика. Компилираните езици за програмиране обикновено са по-бързи от интерпретираните. Така че в ситуации като разработването на игри, които изискват скорост, разработчиците са склонни да използват компилирани езици.

Какво е превод?

Процесът на превод преобразува кода, написан от програмист, в машинен код, който компютърът може да изпълни. Машинният код е вид език на ниско ниво, който има единици и нули. И така, това, което прави преводачът, е да преобразува кода от високо ниво, който създавате на език за програмиране, в машинен код.

Без преводачи ще трябва да кодирате на машинен език. Всеки език за програмиране на високо ниво, който познавате, използва един от трите метода за превод: компилатор, интерпретатор или хибрид от двата.

instagram viewer

Какво е компилатор?

Компилаторът е софтуер, който преобразува изходния код, написан на език от високо ниво, в код от ниско ниво за изпълнение.

Диаграмата по-горе представя компилатор в най-основната му форма. Компилаторът има няколко фази. Всяка фаза трансформира кода от едно състояние в друго. Целта на всяка фаза на компилатора е да създаде изход, който е по-лесен за манипулиране от следващата фаза. Общата структура на компилатора е както следва:

  • Скенер: тази фаза взема поток от знаци и ги групира в токени, които представляват идентификатори, низови литерали и т.н.
  • Парсер: тази фаза групира токените въз основа на граматиката на изходния език за програмиране. Той създава абстрактно синтактично дърво, което е колекция от изрази, които съставляват програмата.
  • Семантика: тази фаза провежда семантичен анализ на абстрактното синтактично дърво (AST). Той използва правилата на изходния език, за да добави значение чрез присвояване на типове на AST изразите и проверка на тяхната валидност. След това AST се превръща в междинно представяне.
  • Междинно представяне (IR): тази фаза преобразува изходния код на оригиналната програма в машинен код. Той произвежда опростена версия на асемблерния код. IR използва един или повече оптимизатори за подобряване на IR кода и за събиране на информация за машината, на която работи. Оптимизаторът може да направи програмата по-ефективна, по-бърза или дори по-малка.
  • Генератор на код: тази фаза консумира оптимизирания IR код и го преобразува в машинен код.

Кои езици за програмиране използват компилатори?

Някои популярни компилирани езици за програмиране включват:

  • ° С
  • C++
  • Отивам
  • Ада
  • Fortran
  • COBOL
  • Lisp
  • Цел-C
  • Бърз

Едно предимство на използването на компилиран език е, че той идентифицира грешки по време на компилацията. Това ви позволява да коригирате такива грешки и след това да опитате да компилирате програмата отново. По-малко вероятно е компилираните езици да се провалят, след като започнат да се изпълняват. Тези езици дори няма да генерират програма за изпълнение, ако изходният код има синтактични грешки. Но семантичните грешки и други форми на грешки по време на изпълнение ще го преодолеят.

Компилираните езици също се изпълняват много бързо след компилирането им.

Какво е преводач?

Интерпретаторът е програма, която превежда и изпълнява един ред код в даден момент. Този процес се повтаря, докато интерпретаторът стигне до последния ред код в дадената програма или скрипт.

Както можете да видите от диаграмата по-горе, интерпретаторът приема два входа. Първо, той отнема целия изходен код (програма). След това чете първия ред на програмата (като вход), превежда и го изпълнява. Ако този ред се изпълнява правилно, той преминава към следващия ред в програмата или скрипта.

За разлика от компилатора, интерпретаторът не превежда цяла програма в машинен код. Вместо това той анализира и анализира даден ред код, преди да го изпълни. Преводачът трябва да започне да изпълнява програма – особено по-голяма – преди компилаторът дори да е приключил с превода й.

Кои езици за програмиране използват преводачи?

Някои популярни интерпретирани езици за програмиране включват:

  • Python
  • JavaScript
  • Perl
  • MATLAB
  • ОСНОВЕН

Въпреки че интерпретаторът започва да изпълнява кода по-бързо, той пак ще се провали, ако срещне грешка. Като програмист ще трябва да поправите такава грешка и да рестартирате програмата. Това събитие се случва всеки път, когато интерпретаторът срещне нова грешка. Някои грешки може да останат неактивни, ако са свързани с рядък набор от обстоятелства. В такива случаи, тестването е по-важно от всякога.

Преводачите обикновено са по-лесни за разработване от компилаторите и техните програми са по-преносими по дизайн.

Какво е хибриден превод?

Хибридният превод използва компилатор и интерпретатор. Хибридният превод компилира изходния код от високо ниво във форма от по-ниско ниво, като байткод. След това използва интерпретатор, за да стартира този байткод.

Хибридният превод може да се различава от един език за програмиране на друг, но ще използва тази обща структура. Един от най-популярните езици за програмиране, които използват хибриден превод, е Java. Компилаторът на Java превежда своя изходен код в Байткод на виртуална машина на Java (JVM).. След това интерпретаторът превежда JVM байт-кода в машинен код.

Кои езици за програмиране използват хибриден превод?

Някои популярни хибридни езици за програмиране включват:

  • Java
  • ° С#
  • Visual Basic
  • Ерланг
  • F#

С хибридния превод получавате най-доброто от двата свята. Първо компилирането на кода ви позволява да разрешите грешки при първа възможност. Байт-кодът, който хибридните компилатори създават, е по-лесен за интерпретация, отколкото изходен код на програма от високо ниво.

Стойността на познаването на различните методи за превод

Трябва да разберете конкретния метод за превод, който използва даден език, особено ако го използвате за нов проект. Методът за превод на език е основна част от идентичността на езика за програмиране. Това може да повлияе на начина, по който разпространявате програмата си и как потребителите ще я изпълняват.

Всеки подход за превод има своите предимства. Най-добрите езици за програмиране като C++, Python и Java използват различни методи за превод. Наред с парадигмата на езика, неговият метод на превод е една от най-важните черти, с които трябва да сте наясно.

Има няколко парадигми, които езикът за програмиране може да използва. Повечето от най-добрите езици за програмиране са мултипарадигмни езици; те подкрепят използването на две или повече различни парадигми. Три от най-популярните парадигми са императивно, обектно-ориентирано и функционално програмиране.