Как вы определяете язык, который не компилируется
Я задаю этот вопрос, потому что вижу много "личных предпочтений", когда речь идет о терминах "язык сценариев" и "язык программирования".
Мой вопрос:
Существует ли подходящий технический термин для языка, который не компилируется или работает непосредственно в браузере? В каждой статье, которую я прочитал, и в вопросе, который я искал, явно не сказано, что определяет эту характеристику языка.
4 ответа
Может быть, вы имеете в виду это
https://en.wikipedia.org/wiki/Interpreted_language
Интерпретируемый язык - это язык программирования, для которого большинство его реализаций выполняют инструкции напрямую, без предварительной компиляции программы в инструкции машинного языка. Интерпретатор выполняет программу напрямую, переводя каждый оператор в последовательность из одной или нескольких подпрограмм, уже скомпилированных в машинный код.
Язык сценариев
Значение: язык, который интерпретируется, а не компилируется
Таким образом, язык, который не скомпилирован, является языком сценариев
Язык разметки / разметки
Значение: язык, который может быть написан так, что форматирует простой текст в "лучше выглядящий" или красиво отформатированный текст.
(это то, что переполнение стека использует, чтобы сделать этот уродливый текст, хорошо выглядеть)
Язык программирования
Значение: любой язык, предназначенный для общения с компьютером или машиной.
Так что все, даже язык сценариев считается языком программирования. Любой кусок кода, включая разметку и разметку, можно считать языками программирования, хотя они спорны!
Веб-языки
Веб-язык - больше категория, а не фактический тип программирования. Веб-языки - это сочетание нескольких языков, которые можно использовать для создания веб-страницы. Основная веб-страница состоит из HTML
(Разметки), JavaScript
(язык сценариев) и CSS
который также является языком сценариев.
Возможно, это не полный ответ на ваш вопрос, но поскольку вы упоминаете язык сценариев и язык программирования в своем вопросе.
На мой взгляд (что в данном случае не соответствует распространенному мнению):
Язык сценариев - это язык, который в основном позволяет "говорить" с объектами, создавать сценарии для существующих приложений для выполнения определенных рабочих процессов.
Язык программирования - это язык, который в основном позволяет вам определять объекты, с которыми вы взаимодействуете, для выполнения определенных рабочих процессов.
На первый взгляд, разница может быть не слишком большой, а в реальном мире ее часто нет; Если я использую javascript внутри расширения браузера для удаления рекламы с веб-страниц, я пишу сценарий, но когда я использую javascript с узлом для построения системы crm, я программирую. Это делает javascript одновременно и скриптом, и языком программирования.
С этой точки зрения язык, и если он скомпилирован или интерпретирован и динамически или статически типизирован, на самом деле не имеет значения.
Я обычно вижу несколько десятков строк кода для автоматизации чего-либо как сценария, но несколько сотен или более как программы.
Есть много способов размыть грани между этими концепциями, и именно так я воспринимаю эти вещи как разработчика.
Все языки программирования, кроме языков ассемблера, компилируются. Даже для интерпретации языка, как в пакетных языках, требуется этап компиляции, чтобы преобразовать отдельные пакетные инструкции в последовательность команд ЦП.
Компилятор - это компьютерная программа (или набор программ), которая преобразует исходный код, написанный на языке программирования (исходный язык), в другой компьютерный язык (целевой язык), [...]
Источник: Википедия
Язык ассемблера переводится не скомпилированным, потому что одна сборочная строка переводится для извлечения одной инструкции ЦП.
Ассемблер (или язык ассемблера) - это низкоуровневый язык программирования для компьютера или другого программируемого устройства, в котором существует очень сильное (обычно однозначное) соответствие между языком и инструкциями машинного кода архитектуры. Каждый язык ассемблера специфичен для конкретной компьютерной архитектуры, в отличие от большинства языков программирования высокого уровня, которые обычно переносимы на несколько архитектур, но требуют интерпретации или компиляции.
Источник: Википедия
Новые ассемблеры имеют поддержку макросов для замены или развёртывания инструкций, но это не шаг компиляции, а просто обработка макросов.