UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Таблица П.2.2. Встроенные функции
Логические выражения имеют значения 1 (истина) и 0 (ложь). Как и в Си, любое ненулевое значение означает истину. При всех операциях над числами с плавающей точкой сравнения на равенство могут быть неточными. Кроме того,
hoc| 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 возможное_выражениесписок_операторов : (пусто) | список_операторов операторПрисваивание распознается по умолчанию как оператор, а не как выражение, поэтому после ввода в диалоге присваиваний их значения не печатаются.
Отметим, что символ
;hocifif (x < 0) print(у) else print (z)if (x < 0) { print(y)} else { print(z)}Во втором примере скобки не обязательны: символ перевода строки после
ifСинтаксис и семантика средств управления в
hocwhileifhocbreakcontinuereadprintФункция ввода
readreadreadВыходной поток порождается оператором
printprintprintОтметим, что
readprintwhile (read (x)) { print "value is", x, "n"}Функции и процедуры в
hocСинтаксис определения таков:
function: func имя () операторprocedure: proc имя() операторЗдесь имя может быть именем некоторой переменной встроенные функции исключаются. Определение, вплоть до открывающейся скобки оператора, должно помещаться на одной строке, как в приведенном выше операторе
ifВ отличие от Си тело функции или процедуры может быть любым оператором, не обязательно составным (в скобках). Поскольку символ ; не имеет своего значения в
hocФункции и процедуры при вызовах могут получать аргументы, отделенные запятыми. На аргументы ссылаются так же, как в
shell$3printfФункции и процедуры могут быть рекурсивными, но стек имеет ограниченную глубину (около сотни вызовов).
• Ниже показано определение функции Аккерманна в
hoc$ hoctime ack() { if ($1 == 0) return $2+1 if ($2 ==0) return ack($1 - 1, 1) return ack($1 - 1, ack($1, $2 - 1))}ack(3,2) 29ack(3,3)
