Брайан Керниган - UNIX — универсальная среда программирования

Здесь есть возможность читать онлайн «Брайан Керниган - UNIX — универсальная среда программирования» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1992, ISBN: 1992, Издательство: Финансы и статистика, Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

UNIX — универсальная среда программирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «UNIX — универсальная среда программирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
.
Для программистов-пользователей операционной системы UNIX.

UNIX — универсальная среда программирования — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «UNIX — универсальная среда программирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

d.val = (double)(d.val == 0.0);

push(d);

}

power() {

Datum d1, d2;

extern double Pow();

d2 = pop();

d1 = pop();

d1.val = Pow(d1.val, d2.val);

push(d1);

}

assign() {

Datum d1, d2;

d1 = pop();

d2 = pop();

if (d1.sym->type != VAR && d1.sym->type != UNDEF)

execerror("assignment to non-variable", d1.sym->name);

d1.sym->u.val = d2.val;

d1.sym->type = VAR;

push(d2);

}

print() /* pop top value from stack, print it */

{

Datum d;

d = pop();

printf("\t%.8g\n", d.val);

}

prexpr() /* print numeric value */

{

Datum d;

d = pop();

printf("%.8g ", d.val);

}

prstr() /* print string value */

{

printf(%s", (char*)*pc++);

}

varread() /* read into variable */

{

Datum d;

extern FILE *fin;

Symbol *var = (Symbol*)*pc++;

Again:

switch (fscanf(fin, "%lf", &var->u.val)) {

case EOF:

if (moreinput())

goto Again;

d.val = var->u.val = 0.0;

break;

case 0:

execerror("non-number read into", var->name);

break;

default:

d.val = 1.0;

break;

}

var->type = VAR;

push(d);

}

Inst *code(f) /* install one instruction or operand */

Inst f;

{

Inst *oprogp = progp;

if (progp >= &prog[NPROG])

execerror("program too big", (char*)0);

*progp++ = f;

return oprogp;

}

execute(p)

Inst *p;

{

for (pc = p; *pc != STOP && !returning; )

(*((++pc)[-1]))();

}

3.7.4 double

proc double() {

if ($1 > 1) {

double($1/2)

}

print($1)

}

double(1024)

3.7.5 fac

func fac() {

if ($1 <= 0) return 1 else return $1 * fac($1-1)

}

3.7.6 fac1

func fac() if ($1 <= 0) return 1 else return $1 * fac($1-1)

fac(0)

fac(7)

fac(10)

3.7.7 fac2

func fac() {

if ($1 <= 0) {

return 1

}

return $1 * fac($1-1)

}

i=0

while(i<=20){

print "factorial of ", i, "is ", fac(i), "\n"

i=i+1

}

3.7.8 fib

proc fib() {

a = 0

b = 1

while (b < $1) {

print b

c = b

b = a+b

a = c

}

print "\n"

}

3.7.9 fib2

{

n=0

a=0

b=1

while(b<10000000){

n=n+1

c=b

b=a+b

a=c

print(b)

}

print(n)

}

3.7.10 fibsum

proc fib(){

a=1

b=1

c=2

d=3

sum = a+b+c+d

while(d<$1){

e=d+c

print(e)

a=b

b=c

c=d

d=e

sum=sum+e

}

print(sum)

}

fib(1000)

3.7.11 fibtest

proc fib() {

a = 0

b = 1

while (b < $1) {

c = b

b = a+b

a = c

}

}

i = 1

while (i < 1000) {

fib(1000)

i = i + 1

}

3.7.12 hoc.h

typedef struct Symbol { /* symbol table entry */

char *name;

short type;

union {

double val; /* VAR */

double (*ptr)(); /* BLTIN */

int (*defn)(); /* FUNCTION, PROCEDURE */

char *str; /* STRING */

} u;

struct Symbol *next; /* to link to another */

} Symbol;

Symbol *install(), *lookup();

typedef union Datum { /* interpreter stack type */

double val;

Symbol *sym;

} Datum;

extern Datum pop();

extern eval(), add(), sub(), mul(), div(), negate(), power();

typedef int (*Inst)();

#define STOP (Inst)0

extern Inst *progp, *progbase, prog[], *code();

extern assign(), bltin(), varpush(), constpush(), print(), varread();

extern prexpr(), prstr();

extern gt(), lt(), eq(), ge(), le(), ne(), and(), or(), not();

extern ifcode(), whilecode(), call(), arg(), argassign();

extern funcret(), procret();

3.7.13 hoc.ms

.EQ

delim @@

.EN

.TL

Hoc - An Interactive Language For Floating Point Arithmetic

.AU

Brian Kernighan

Rob Pike

.AB

.I Hoc

is a simple programmable interpreter

for floating point expressions.

It has C-style control flow,

function definition and the usual

numerical built-in functions such as cosine and logarithm.

.AE

.NH

Expressions

.PP

.I Hoc

is an expression language,

much like C:

although there are several control-flow statements,

most statements such as assignments

are expressions whose value is disregarded.

For example, the assignment operator

= assigns the value of its right operand

to its left operand, and yields the value,

so multiple assignments work.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «UNIX — универсальная среда программирования»

Представляем Вашему вниманию похожие книги на «UNIX — универсальная среда программирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «UNIX — универсальная среда программирования»

Обсуждение, отзывы о книге «UNIX — универсальная среда программирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x