Лекция
Привет, Вы узнаете о том , что такое командный интерпретатор, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое командный интерпретатор, интерпретатор командной строки, direct mode, repl , настоятельно рекомендую прочитать все из категории Операционные системы и системное программировние.
командный интерпретатор , интерпретатор командной строки — компьютерная программа, часть операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки или последовательного исполнения пакетных командных файлов.
Как правило его функции сводятся к предоставлению пользователю возможности запускать другие программы, может также содержать некоторые базовые команды ввода-вывода и свой простой скриптовый язык программирования.
В операционные системы MS-DOS и Windows 95 включен командный интерпретатор COMMAND.COM, в Windows NT — cmd.exe, в OS/2 командный интерпретатор тоже называется cmd.exe, самый распространенный командный интерпретатор в Linux и FreeBSD — bash, помимо которого есть большое семейство других.
Как правило, при низкоуровневой настройке ОС у пользователя есть возможность менять командный интерпретатор, используемый по умолчанию.
К функциям интерпретатора командной строки относятся:
Зачастую интерпретатор командной строки предоставляет возможность использования циклов, операторов условного и безусловного перехода и переменных. Он позволяет писать как несложные сценарии для автоматизации повседневных задач, так и довольно сложные программы.
Пример калькулятора для интерпретатора командной строки Windows/MS-DOS.
@echo off
:begin
Cls
Title Калькулятор
Color 71
Echo Введите уравнение:
Set /P exp=
Set /A result=%exp%
Title Вычислено
Echo Ваше уравнение: %exp%
Echo Решение: %result%
Pause>nul
goto begin
Калькулятор, для командной оболочки bash:
#!/usr/bin/env bash
echo "Калькулятор"
while read -p "Введите выражение: " expr
do
echo "Результат: $(($expr))"
done
Оболочка в своей работе оперирует простыми командами.
Простая команда — это последовательность слов через пробел. Об этом говорит сайт https://intellect.icu . Нажатие клавиши Enter при вводе команды или перевод строки при обработке сценария являются для командного интерпретатора признаком завершения команды. Она обрабатывается и выполняется.
Конвейер — это последовательность одной или более команд, разделенных |(& для cmd.exe). Стандартный выходной поток каждой команды, кроме последней, соединяется при помощи программного канала со стандартным входным потоком следующей команды. Каждая команда выполняется как отдельный процесс; интерпретатор ожидает окончания последней команды. Статусом выхода конвейера является статус выхода его последней команды. Вот пример простого конвейера для интерпретатора bash :
$ ls | tee save | wc
15 15 100
DOS:
Windows:
Unix:
Прямой режим , также известный как немедленный режим , - это вычислительный термин, относящийся к вводу текстовых команд вне контекста программы. Команда будет выполнена немедленно, а результаты будут выведены на экран, в отличие от режима программирования, в котором ничего не будет выполняться до тех пор, пока не будет дана конкретная команда. ( BASIC «s RUN является примером команды прямого режима.) Некоторые команды могут быть использованы в любом режиме, в то время как другие были исключительно одним или другим.
Прямой режим чаще всего использовался в 8-битных системах, таких как серии Commodore 64 и Atari 800 , хотя команды, вводимые в оболочке Unix, можно рассматривать как эквиваленты прямого режима сценариям оболочки , а современные интерпретируемые языки, такие как Python и Perl, включают REPL оболочки, в которых можно вводить команды для немедленной оценки и выполнения.
Также современные интегрированные среды разработки часто предлагают прямой режим, в котором во время отладки и пока выполнение программы остановлено, команды могут выполняться непосредственно в текущей области, а результат отображается на мониторе .
Непрямой режим:
10 PRINT "intellect.icu"
READY RUN ПРИВЕТ intellect.icu READY Прямой режим:
PRINT "ПРИВЕТ intellect.icu" ПРИВЕТ intellect.icu
READY
REPL (от англ. read-eval-print loop — «цикл „чтение — вычисление — вывод“») — форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки. Чаще всего этой аббревиатурой характеризуется интерактивная среда языка программирования Лисп, однако такая форма характерна и для интерактивных сред языков Erlang, Groovy, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, Scala, Smalltalk, Swift и других.
В такой среде пользователь может вводить выражения, которые среда тут же будет вычислять, а результат вычисления отображать пользователю. Названия элементов цикла связаны с соответствующими примитивами Лиспа:
read
читает одно выражение и преобразует его в соответствующую структуру данных в памяти;eval
принимает одну такую структуру данных и вычисляет соответствующее ей выражение;print
принимает результат вычисления выражения и печатает его пользователю.Чтобы реализовать REPL-среду для некоторого языка, достаточно реализовать три функции: чтения, вычисления и вывода, и объединить их в бесконечный цикл. REPL-среда очень удобна при изучении нового языка, так как предоставляет пользователю быструю обратную связь.
Исследование, описанное в статье про командный интерпретатор, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое командный интерпретатор, интерпретатор командной строки, direct mode, repl и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Операционные системы и системное программировние
Из статьи мы узнали кратко, но содержательно про командный интерпретатор
Комментарии
Оставить комментарий
Операционные системы и системное программировние
Термины: Операционные системы и системное программировние