Брайан Керниган - UNIX — универсальная среда программирования
- Название:UNIX — универсальная среда программирования
- Автор:
- Жанр:
- Издательство:Финансы и статистика
- Год:1992
- Город:Москва
- ISBN:5-289-00253-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Брайан Керниган - UNIX — универсальная среда программирования краткое содержание
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.
Для программистов-пользователей операционной системы UNIX.
UNIX — универсальная среда программирования - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
n |
Абсолютный номер строки n, n = 0,1, 2,... |
. |
Текущая строка |
$ |
Последняя строка текста |
/re/ |
Следующая строка, соответствующая re ; после последней $ циклическое движение к первой строке |
?re? |
Предыдущая строка, соответствующая re; после первой циклическое движение к последней $ |
'c |
Строка с меткой с |
N1+/-n |
Строка N1+/-n (аддитивная комбинация) |
N1,N2 |
Строки с N1 по N2 |
N1;N2 |
Команда: сделать строку N1 текущей, затем вычислить N2. N1 и N2 могут быть определены любым из перечисленных выше способов |
Таблица П.1.3: Номера строк в ed
Если вы думаете, что знаете ed
, попробуйте выполнить текст (см. справочное руководство по quiz(6)
).
Приложение 2
Справочное руководство по hoc
Hoc — диалоговый язык для арифметики с плавающей точкой
Б. Керниган Р. ПайкHoc — это простой программируемый интерпретатор для выражений с плавающей точкой. Он обеспечивает поток управления в стиле Си, определения функций и обычные числовые встроенные функции, такие, как косинус и логарифм.
Hoc представляет язык выражений, во многом подобный Си: хотя он и содержит несколько управляющих операторов, большинство операторов, например присваивания, суть выражения, значения которых не принимаются во внимание. Так, оператор присваивания =
присваивает значение своей правой части левому операнду и вырабатывает значение, используемое в многократном присваивании. Грамматика выражений имеет вид:
выражение : число
| переменная
| (выражение)
| выражение бинарная_операция выражение
| унарная_операция выражение
| функция(аргументы)
Числа представляются с плавающей точкой. Формат ввода распознается с помощью scanf(3)
: цифры, десятичная точка, цифры, е
или E
, показатель степени со знаком. Должна присутствовать по крайней мере одна цифра или десятичная точка; другие компоненты являются необязательными.
Имена переменных формируются из букв, за которыми следуют строки букв и цифр. Здесь бинарная_операция означает двуместные операции, такие, как сложение или логическое сравнение, а унарная_операция — две операции отрицания: ' !
' (логическое отрицание НЕ) и (арифметическое отрицание, перемена знака). Все операции перечислены в табл. П.2.1.
^ |
Возведение в степень (FORTRAN ** ), правоассоциативна |
! - |
Одноместные логическое и арифметическое отрицания |
* / |
Умножение, деление |
+ - |
Сложение, вычитание |
> >= |
Операции отношения: больше, больше или равно |
< <= |
Меньше, меньше или равно |
== != |
Равно, не равно (все отношения одинакового приоритета) |
&& |
Логическое И (оба операнда всегда вычисляются) |
|| |
Логическое ИЛИ (оба операнда всегда вычисляются) |
= |
Присваивание, правоассоциативна |
Таблица П.2.1. Операции по порядку уменьшения приоритета
Функции, как описывается ниже, могут быть определены пользователем. Аргументы функций — это выражения, разделяемые запятыми. В табл. П.2.2 перечислено несколько встроенных функций, имеющих по одному аргументу.
abs(x) |
Абсолютная величина x |
atan(x) |
Арктангенс x |
cos(x) |
Косинус x |
exp(х) |
Экспонента x |
int(x) |
Целая часть x , усеченная в сторону нуля |
log(x) |
Натуральный логарифм x |
log10(x) |
Десятичный логарифм x |
sin(x) |
Синус x |
sqrt(x) |
Корень квадратный из x |
Таблица П.2.2. Встроенные функции
Логические выражения имеют значения 1 (истина) и 0 (ложь). Как и в Си, любое ненулевое значение означает истину. При всех операциях над числами с плавающей точкой сравнения на равенство могут быть неточными. Кроме того, hoc
имеет несколько встроенных констант, приведенных в табл. П.2.3.
DEG | 57.2957795130823208768 | 180/π, градусы на радианы |
E |
2.71828182845904523536 | е, основание натуральных логарифмов |
GAMMA |
0.57721566490153286060 | γ, константа Эйлера-Масчерони |
PHI |
1.61803398874989484820 | (√5+1)/2, золотое сечение |
PI |
3.14159265358979323846 | π, круговое трансцендентное число |
Таблица П.2.3. Встроенные константы
Операторы hoc
имеют следующую грамматику:
оператор : выражение
| переменная выражение
| процедура (список, аргументов)
| while (выражение) оператор
| if (выражение) оператор
| if (выражение) оператор else оператор
| список_операторов
| print список_выражений
| return возможное_выражение
список_операторов : (пусто)
| список_операторов оператор
Присваивание распознается по умолчанию как оператор, а не как выражение, поэтому после ввода в диалоге присваиваний их значения не печатаются.
Отметим, что символ ;
не является для hoc
специальным: оператор оканчивается символом перевода строки. Это обусловливает некоторые особенности. Ниже показан допустимый оператор if
:
if (x < 0) print(у) else print (z)
if (x < 0) {
print(y)
} else {
print(z)
}
Во втором примере скобки не обязательны: символ перевода строки после if
оканчивал бы оператор и вызывал бы синтаксическую ошибку там, где опущены скобки.
Синтаксис и семантика средств управления в hoc
в основном те же, что и в Си. Одинаковы также while
и if
, однако в hoc
нет операторов break
и continue
.
read
и print
Функция ввода read
(читать) имеет, подобно другим встроенным функциям, один аргумент: однако он не является выражением: это имя переменной. Следующее число, как определено выше, читается из стандартного входного потока и присваивается поименованной переменной. Функция read
возвращает значения 1 (истина), если величина была прочитана, и 0 (ложь), если read
встретила конец файла либо ошибку.
Выходной поток порождается оператором print
. Аргументы print
составляют разделяемый запятыми список выражений и строк, взятых в кавычки, как в Си. Символы перевода строки должны добавляться: print
их никогда автоматически не вводит.
Интервал:
Закладка: