UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ make -nС другой стороны, если необходимо установить временную согласованность файлов, с помощью флага
-tОбратите внимание на то, что мы ввели не только множество зависимостей между исходными файлами, но и несколько полезных процедур, сконцентрировав их в одном файле. По умолчанию программа
makemakefilesymbol.opr$ make pr | lprинициирует распечатку зависимостей файлов на принтере. (Появление символа
@"@pr"makemake cleanудаляет выходные файлы
yacc.oТакой механизм пустых зависимостей в файле
makefilemakelexПрограмма
lexyacclexlexyacclexВначале приведем
lexlex.lyylex$ cat lex.l%{#include "hoc.h"#include "y.tab.h"extern int lineno;%}%%[ t] { ; } /* skip blanks and tabs */[0-9]+.?][0-9]*.[0-9]+ { sscanf(yytext, "%lf", &yylval.val); return NUMBER;}[a-zA-Z][a-zA-Z0-9]* { Symbol *s; if ((s=lookup(yytext)) == 0) s = install(yytext, UNDEF, 0.0); yylval.sym = s; return s->type == UNDEF ? VAR : s->type;}n { lineno++; return 'n'; }/* everything else */. { return yytext[0]; }$Каждое "правило" является регулярным выражением, как и те, что использовались в
egrepawklextn*+lexyytextlexmakefilemake$ cat makefileYFLAGS = -dOBJS = hoc.o lex.o init.o math.o symbol.ohoc3: $(OBJS) cc $(OBJS) -lm -ll -o hoc3hoc.o: hoc.hlex.o init.o symbol.o: hoc.h y.tab.h...$"знает", как получить из файла
.l.olex -lllex$ makeyacc -d hoc.y conflicts: 1 shift/reduceсс -с y.tab.crm y.tab.cmv y.tab.o hoc.olex lex.lсс -с lex.yy.crm lex.yy.cmv lex.yy.o lex.oсс -c init.cсс -c math.cсс -c symbol.ccc hoc.o lex.o init.o math.o symbol.o -lm -ll -o hoc3
