Езиците за програмиране обикновено попадат в един от двата типа езици - компилирани или интерпретирани езици. Разликата обаче не е в езика; това е в изпълнението. Не е грешно да се каже, че и двете са свойствата на реализацията на даден език, но не и свойствата на самия език. Внедряването на език за програмиране означава преодоляване на разликата от мисленето на програмиста на високо ниво до нулите и тези на машината. Ако се правят ефективно, програмистите могат да се концентрират върху реалните проблеми, а не върху детайлите на машините. Така че, език за програмиране може да бъде съставен или интерпретиран въз основа на изпълнението.
Е, и двата типа езици за програмиране имат своите силни страни. Някои езици изискват всички ваши кодове да бъдат компилирани, преди някой от кода да бъде изпълнен. Други езици интерпретират всяка инструкция в момента на изпълнение на кода. Всъщност компилираните езици обикновено се компилират от програмист на компютъра на програмиста; когато програмистът споделя софтуера, той / тя споделя компилираните 0 и 1, но не и изходния код. Въпреки това, с интерпретиран език, кодът се запазва в същия формат, който сте въвели и трябва да бъде преведен по време на изпълнение. Нека да разгледаме подробно сравнение между съставените и тълкуваните езици.
Компютрите могат да изпълняват само машинен език, който е езикът на централния процесор (CPU) и е много прост. Целта на всяка реализация на езика за програмиране е да се преведе изходна програма на машинния език, така че да може да бъде изпълнена от процесора. Всички езикови реализации превеждат изходна програма в някакво междинно представяне, преди да преведат междинното представяне на машинен език. Най-прекият метод за превод на програма на машинен език се нарича компилация. Програма, написана на компилиран език, трябва да бъде преобразувана в различен формат, преди да бъде стартирана. Изходният код трябва да се трансформира в машинно четими инструкции преди изпълнението. Накратко, езиците, чиито реализации обикновено са компилатори, а не интерпретатори, се наричат компилирани езици.
Интерпретаторът е програма, която е написана на някакъв друг език и компилирана в машинно четим език. Самият интерпретатор е машинната езикова програма и се пише, за да се четат програми от изходния език и да се интерпретират. Тълкуваният език, напротив, не компилира изходния код на машинен език преди стартиране на програмата. Той просто интерпретира кода в движение. Така че не получавате ползите или недостатъците на грешките при компилация. Интерпретираните езици изискват софтуер, наречен интерпретатор, който взема изходния код и изпълнява една инструкция наведнъж. Когато стартирате програма за интерпретиран източник, вие всъщност изпълнявате интерпретатора. Интерпретаторът е машинната езикова програма, която изпълнява всички програми, които пишете на интерпретирания език.
- Програма, написана на компилиран език, трябва да бъде преобразувана в различен формат, преди да бъде стартирана. Изходният код трябва да се трансформира в машинно четими инструкции преди изпълнението. Тълкуваният език, напротив, не компилира изходния код на машинен език преди стартиране на програмата. Той просто интерпретира кода в движение. Интерпретираните езици изискват софтуер, наречен интерпретатор, който взема изходния код и изпълнява една инструкция наведнъж.
- С компилираните езици има поне две стъпки за преминаване от изходния код до изпълнение, докато при интерпретираните езици има само едно - изпълнение. Програма, написана на интерпретиран език, не се компилира - тя се интерпретира от друга програма, докато тя работи. Една програма, написана на компилиран език, преминава през процес, за да я промени от текста, който може да се чете от хора, в машинно четим формат. Програма, наречена компилатор, прави този преход.
- Компилираните програми се изпълняват по-бързо от интерпретираните програми, но интерпретираните програми могат да бъдат модифицирани, докато програмата работи. Това прави интерпретираните програми идеални за писане на софтуер за изпълнение на живо. Работата с компилирани езици може да бъде хубава, защото се откриват много грешки, когато се компилира изходният код. Тези грешки, наречени компилационни грешки, пречат на кода да се компилира. Напротив, интерпретираните езици не се компилират, така че не получавате ползите или недостатъците на компилационните грешки.
- При тълкуваните езици всички отстраняване на грешки се случват по време на изпълнение. Няма стъпка за компилация, по време на която можете да изгоните всички грешки в синтаксиса във вашия код; вместо това трябва да стартирате програмата, за да намерите грешки в нея. Това се превръща в проблем, когато интерпретираната програма променя файлове или прави някакви промени в постоянните ресурси. Това прави някои грешки по-трудно за улавяне, тъй като кодът не е необходимо да се компилира. Тълкуваните езици също представляват някои опасения за сигурността в онлайн средата, тъй като злонамерен код може да бъде поставен в средата на изпълнение.
С две думи, както съставените, така и тълкуваните езици имат своите силни страни. Някои езици изискват всички ваши кодове да бъдат компилирани, преди някой от кода да бъде изпълнен. Други езици интерпретират всяка инструкция в момента на изпълнение на кода. Основната разлика между двете е, че има поне две стъпки за преминаване от изходния код до изпълнение с компилирани езици. При тълкуваните езици обаче има само една стъпка - изпълнение. Компилираните програми се изпълняват по-бързо от интерпретираните програми, но интерпретираните програми могат да бъдат модифицирани, докато програмата работи.