Каталог секретной библиотеки
Страница 1 из 1
Каталог секретной библиотеки
- Товарищ прапорщик, рация на лампах или транзисторах?
- Рация на бронепоезде!
Помните, в простых книжках по БЭЙСИК мы читали, что "компьютер умеет:
- запрашивать данные;
- сохранять данные;
- генерировать случайные числа;
- вычислять;
- принимать решения, сравнивая данные разными способами;
- сообщать результаты вычислений, решения, сохраненные данные;
- делать точно то, что вы ему приказали, даже если это глупо;
- не умеет делать то, что вы ему не приказывали".
Но сколько же вокруг людей, которые не понимают, почему он это умеет! У меня сложилось впечатление, что специалисты по компьютерам и появились и вымерли в конце прошлого века. Люди старших поколений недоумевают, как эта железяка может что-то вычислять. А для современных "программистов" компьютер, видимо, представляется "калькулятором" с миллиардом кнопок на все случаи жизни, а программа - просто бусами, собранными из этих кнопок.
Так откуда же взялись компьютеры?
Попробую тут собрать коллекцию некоторых "тайных" знаний. Не претендуя на полноту и непогрешимость. А в качестве "опорных столбов" буду использовать свои любимые книжки. Опять же, не претендуя...
***
Компьютер - интересная штука. Хотели сделать что-то совсем другое, а получился только ускоритель почты и суперхранилище ерунды. Почему-то считается, что особенно хотели сделать механические счеты для ускорения ВЫЧИСЛЕНИЙ. Поэтому многим очень трудно принять способность компьютера "управлять" и "разговаривать", ведь, к обычным числам и арифметическим операциям этого не свести.
С другой стороны, о компьютере мечтали как об искусственном человеке - ГОЛЕМЕ. Когда-то грезили об ожившей статуе, потом - о шагающем и говорящем механизме, наконец - о механическом мозге. Но, мы сами не можем понять, как мыслим, где тот "экран", на который проецируется в мозгу то, что мы видим, кто на этот "экран" смотрит "изнутри"? Поэтому кидает сторонников этого подхода от презрения к лишенной чувств железяке до ужаса перед машиной, научившейся чувствовать и хотеть.
А победили в реализации своих мечтаний КИБЕРНЕТИКИ. Им удалось выделить информацию в отдельную природную субстанцию, вроде химической или физической энергии. Это позволило рассматривать процессы управления, вплоть до проявления разума, в отрыве от материала, из которого сделан мозг.
Какие же инструменты и материалы принесли с собой строители первого компьютера?
***
Начну с ГОЛЕМОВ. Представим себе машину, умеющую забивать гвозди. Ну, тупо, чисто механически: захват хватает гвоздь, рычаг поднимает молоток... Такое вполне можно вообразить без привлечения "компьютерной магии".
Теперь "добавим" к этой машине глаз для различения гвоздей - ну, там, свет падает через линзу на чувствительное сопротивление, ток увеличивается, срабатывает реле... Опять - никакой магии.
Так почему же соединив проводом "глаз" и "молоток": мол, "вижу - забиваю",- мы начинаем видеть какую-то магию "искусственного разума"?
Поэтому посмотрим, как ГОЛЕМОВ видели и делали (!) 100 лет назад. Из чисто библиофильских соображений выкладываю компиляцию обоих изданий книги Дрожжина "Разумные машины" - 1931 и 1936гг. В первом получше картинки, второе - пообъемнее, и главное - за 5 лет к американским умным машинам добавились и советские. Становиться жутко, сколько из того, что сейчас выдается за "новейшие инновации", прекрасно работало еще в начале прошлого века.
ДРОЖЖИН
РАЗУМНЫЕ МАШИНЫ
1931 DJVU, 11.5Мб
1936 DJVU, 26.5Мб
(В скобках - главы, присутствующие только в одном издании).
ВСТУПЛЕНИЕ. КОГДА МАШИНА ЗА НАС (31)
ГЛАВА ПЕРВАЯ. АНДРОИДЫ
ЧУДО ВОСЕМНАДЦАТОГО ВЕКА - МЕХАНИЧЕСКИЕ ЛЮДИ ПЬЕРА И АНРИ ДРО
МЕХАНИЧЕСКИЕ ЛЮДИ И "СВЯТЕЙШАЯ" ИНКВИЗИЦИЯ
ДАЛЬНЕЙШИЕ ПРИКЛЮЧЕНИЯ МЕХАНИЧЕСКИХ ЛЮДЕЙ
"ЖЕЛЕЗНЫЙ ЧЕЛОВЕК" АЛЬБЕРТА БОЛЬШТЕДТА И ДРУГИЕ АНДРОИДЫ
ГЛАВА ВТОРАЯ. РОБОТЫ
"РОССОВЫ УНИВЕРСАЛЬНЫЕ РОБОТЫ"
САМОЗАЖИГАЮЩИЕСЯ МАЯКИ
РОБОТ, УПРАВЛЯЮЩИЙ УЛИЧНЫМ ДВИЖЕНИЕМ НЬЮ-ЙОРКА
РОБОТ НА СЛУЖБЕ В БИБЛИОТЕКЕ
ОСОБАЯ КНОПКА НА ПОЖАРНОЙ СТАНЦИИ
АВТОМАТ, ПРОДАЮЩИЙ "СВЯТУЮ" ВОДУ
"СПИЧЕЧНЫЙ АВТОМАТ"
КАК АВТОМАТ ОПРЕДЕЛЯЕТ КАЧЕСТВО МОНЕТЫ
МАГАЗИНЫ С РОБОТАМИ-ПРОДАВЦАМИ
ФОТОМАТ
КОРАБЛЬ-РОБОТ (31)
АВТОМАТ-ПИЛОТ (31)
ГЛАВА ТРЕТЬЯ. ГИРОРОБОТЫ (36)
ВСЮДУ ВОЛЧКИ
"ПОКАЖИТЕ НАМ ВРАЩЕНИЕ ЗЕМЛИ"
ГИРОСКОП
КАПРИЗНОЕ ИЗОБРЕТЕНИЕ ГЕНРИ УАЙТХЕДА
ЛЕЙТЕНАНТ ОБРИ БЕРЕТСЯ ЗА "НЕРАЗРЕШИМУЮ ЗАДАЧУ"
КРУПНЫЕ НЕПРИЯТНОСТИ, ПРОИСХОДЯЩИЕ С ЖЕЛЕЗНЫМИ ПАРОХОДАМИ
ДОКЛАД СКОРСБИ, ДОКТОРА БОГОСЛОВИЯ
КОМПАСЫ ОКОНЧАТЕЛЬНО ТЕРЯЮТ ГОЛОВУ
КАК АНШЮТЦ И СПЕРРИ ПРЕВРАТИЛИ ВОЛЧОК В КОМПАС
ТРИ МЕХАНИЧЕСКИХ ПОМОЩНИКА ШТУРМАНА
КОРАБЛЬ-РОБОТ
РОБОТ-ПИЛОТ
НЕМНОГО ИСТОРИИ
ГЛАВА ЧЕТВЕРТАЯ. СЛЫШАЩИЕ РОБОТЫ
ЛАМПЫ ПОЛУЧАЮТ СЛУХ
РОБОТ-ПОЛИСМЕН И ШАЛУНЫ
КАК КОМАР МОЖЕТ ВЫСТРЕЛИТЬ ИЗ ПУШКИ
"МИСТЕР ТЕЛЕВОКС" И ЕГО РАЗНОСТОРОННИЕ СПОСОБНОСТИ
МЕХАНИЧЕСКИЙ "МОЗГ" ТЕЛЕВОКСА
КАК "МИСТЕР ТЕЛЕВОКС" НАУЧИЛСЯ ГОВОРИТЬ
ТЕЛЕВОКС НА РАБОТЕ
БРАТЬЯ ТЕЛЕВОКСА (36)
"ТЕАТР АВТОМАТОВ" (36)
НЕКОТОРЫЕ ПРОЕКТЫ, А МОЖЕТ БЫТЬ, И ДОСТИЖЕНИЯ (36)
ГЛАВА ПЯТАЯ. ВИДЯЩИЕ РОБОТЫ
ГОРЯЩАЯ СПИЧКА, БРОШЕННАЯ В БАК С БЕНЗИНОМ
НЕВИДИМЫЕ СЧЕТЧИКИ
"ЛУННОЕ ВЕЩЕСТВО"
СЕЛЕНОВЫЕ ЭЛЕМЕНТЫ
МИЛЛИОН ТРИСТА ТЫСЯЧ ЛЕТ ДЛЯ ОДНОЙ СЕКУНДЫ
"БЕСПОЛЕЗНОЕ ОТКРЫТИЕ" (36)
ФОТОЭЛЕКТРИЧЕСКИЕ ЭЛЕМЕНТЫ
"УЛЬТРАФИОЛЕТОВЫЙ ШВЕЙЦАР"
"ИНФРАКРАСНЫЙ СТОРОЖ"
ЭЛЕКТРИЧЕСКИЕ СОРТИРОВЩИКИ
ПОМОЩНИК КОЧЕГАРА, СИДЯЩИЙ В ТРУБЕ
РОБОТ-ХИМИК
ЭЛЕКТРИЧЕСКИЙ ГЛАЗ "ВЗВЕШИВАЕТ" БУМАГУ
ЕЩЕ ОДИН БРАТ ТЕЛЕВОКСА - ТЕЛЕЛЮКС
"ВИДЯЩИЙ" АВТОМОБИЛЬ
ЭЛЕКТРИЧЕСКАЯ СОБАКА
ЧТО СКРЫВАЕТСЯ ЗА СМЕШНОЙ СОБАЧКОЙ
"ВИДЯЩИЙ" СТАНОК (36)
ЗВЕЗДА ОТКРЫВАЕТ ВЫСТАВКУ (36)
РОБОТ-СТЕНОГРАФ (36)
ЧИТАЮЩИЕ РОБОТЫ (36)
МЕХАНИЧЕСКИЙ НАБОРЩИК (36)
ЕЩЕ НЕМНОГО О МНОГОМ (31)
ГЛАВА ШЕСТАЯ. РАДИОРОБОТЫ
SOS-АВТОМАТЫ
КНОПКА МАРКОНИ
СТРАННЫЕ АВТОМОБИЛИ
РАДИОЛОДКИ
ТАИНСТВЕННЫЕ СОБЫТИЯ В НЬЮПОРТЕ
"ЭТО СОВСЕМ НЕ ИГРУШКА"
ДРЕДНОУТЫ БЕЗ КОМАНДЫ
"ЦЕНТУРИОН" И "ЦЕРИНГЕН"
АЭРОПЛАНЫ БЕЗ ЛЕТЧИКОВ
МОДЕЛИ, УПРАВЛЯЕМЫЕ ПО РАДИО (36)
ГЛАВА СЕДЬМАЯ. ЗАВОДЫ-АВТОМАТЫ
МАШИНА ДЛЯ ИЗГОТОВЛЕНИЯ СИГАР
СТАЛЬНЫЕ СТЕКЛОДУВЫ
МАШИНЫ-КОМБАЙНЫ (36)
БУМАЖНАЯ ФАБРИКА (36)
ЛАМПОВЫЕ ЗАВОДЫ (36)
ЗАВОД КОМПАНИИ СМИТА
ХЛЕБОЗАВОДЫ
ТЕЛЕМЕХАНИКА
ВЕК РАЗУМНЫХ МАШИН (36)
ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА ДЛЯ ДАЛЬНЕЙШЕГО ЧТЕНИЯ (36)
- Рация на бронепоезде!
Помните, в простых книжках по БЭЙСИК мы читали, что "компьютер умеет:
- запрашивать данные;
- сохранять данные;
- генерировать случайные числа;
- вычислять;
- принимать решения, сравнивая данные разными способами;
- сообщать результаты вычислений, решения, сохраненные данные;
- делать точно то, что вы ему приказали, даже если это глупо;
- не умеет делать то, что вы ему не приказывали".
Но сколько же вокруг людей, которые не понимают, почему он это умеет! У меня сложилось впечатление, что специалисты по компьютерам и появились и вымерли в конце прошлого века. Люди старших поколений недоумевают, как эта железяка может что-то вычислять. А для современных "программистов" компьютер, видимо, представляется "калькулятором" с миллиардом кнопок на все случаи жизни, а программа - просто бусами, собранными из этих кнопок.
Так откуда же взялись компьютеры?
Попробую тут собрать коллекцию некоторых "тайных" знаний. Не претендуя на полноту и непогрешимость. А в качестве "опорных столбов" буду использовать свои любимые книжки. Опять же, не претендуя...
***
Компьютер - интересная штука. Хотели сделать что-то совсем другое, а получился только ускоритель почты и суперхранилище ерунды. Почему-то считается, что особенно хотели сделать механические счеты для ускорения ВЫЧИСЛЕНИЙ. Поэтому многим очень трудно принять способность компьютера "управлять" и "разговаривать", ведь, к обычным числам и арифметическим операциям этого не свести.
С другой стороны, о компьютере мечтали как об искусственном человеке - ГОЛЕМЕ. Когда-то грезили об ожившей статуе, потом - о шагающем и говорящем механизме, наконец - о механическом мозге. Но, мы сами не можем понять, как мыслим, где тот "экран", на который проецируется в мозгу то, что мы видим, кто на этот "экран" смотрит "изнутри"? Поэтому кидает сторонников этого подхода от презрения к лишенной чувств железяке до ужаса перед машиной, научившейся чувствовать и хотеть.
А победили в реализации своих мечтаний КИБЕРНЕТИКИ. Им удалось выделить информацию в отдельную природную субстанцию, вроде химической или физической энергии. Это позволило рассматривать процессы управления, вплоть до проявления разума, в отрыве от материала, из которого сделан мозг.
Какие же инструменты и материалы принесли с собой строители первого компьютера?
***
Начну с ГОЛЕМОВ. Представим себе машину, умеющую забивать гвозди. Ну, тупо, чисто механически: захват хватает гвоздь, рычаг поднимает молоток... Такое вполне можно вообразить без привлечения "компьютерной магии".
Теперь "добавим" к этой машине глаз для различения гвоздей - ну, там, свет падает через линзу на чувствительное сопротивление, ток увеличивается, срабатывает реле... Опять - никакой магии.
Так почему же соединив проводом "глаз" и "молоток": мол, "вижу - забиваю",- мы начинаем видеть какую-то магию "искусственного разума"?
Поэтому посмотрим, как ГОЛЕМОВ видели и делали (!) 100 лет назад. Из чисто библиофильских соображений выкладываю компиляцию обоих изданий книги Дрожжина "Разумные машины" - 1931 и 1936гг. В первом получше картинки, второе - пообъемнее, и главное - за 5 лет к американским умным машинам добавились и советские. Становиться жутко, сколько из того, что сейчас выдается за "новейшие инновации", прекрасно работало еще в начале прошлого века.
ДРОЖЖИН
РАЗУМНЫЕ МАШИНЫ
1931 DJVU, 11.5Мб
1936 DJVU, 26.5Мб
(В скобках - главы, присутствующие только в одном издании).
ВСТУПЛЕНИЕ. КОГДА МАШИНА ЗА НАС (31)
ГЛАВА ПЕРВАЯ. АНДРОИДЫ
ЧУДО ВОСЕМНАДЦАТОГО ВЕКА - МЕХАНИЧЕСКИЕ ЛЮДИ ПЬЕРА И АНРИ ДРО
МЕХАНИЧЕСКИЕ ЛЮДИ И "СВЯТЕЙШАЯ" ИНКВИЗИЦИЯ
ДАЛЬНЕЙШИЕ ПРИКЛЮЧЕНИЯ МЕХАНИЧЕСКИХ ЛЮДЕЙ
"ЖЕЛЕЗНЫЙ ЧЕЛОВЕК" АЛЬБЕРТА БОЛЬШТЕДТА И ДРУГИЕ АНДРОИДЫ
ГЛАВА ВТОРАЯ. РОБОТЫ
"РОССОВЫ УНИВЕРСАЛЬНЫЕ РОБОТЫ"
САМОЗАЖИГАЮЩИЕСЯ МАЯКИ
РОБОТ, УПРАВЛЯЮЩИЙ УЛИЧНЫМ ДВИЖЕНИЕМ НЬЮ-ЙОРКА
РОБОТ НА СЛУЖБЕ В БИБЛИОТЕКЕ
ОСОБАЯ КНОПКА НА ПОЖАРНОЙ СТАНЦИИ
АВТОМАТ, ПРОДАЮЩИЙ "СВЯТУЮ" ВОДУ
"СПИЧЕЧНЫЙ АВТОМАТ"
КАК АВТОМАТ ОПРЕДЕЛЯЕТ КАЧЕСТВО МОНЕТЫ
МАГАЗИНЫ С РОБОТАМИ-ПРОДАВЦАМИ
ФОТОМАТ
КОРАБЛЬ-РОБОТ (31)
АВТОМАТ-ПИЛОТ (31)
ГЛАВА ТРЕТЬЯ. ГИРОРОБОТЫ (36)
ВСЮДУ ВОЛЧКИ
"ПОКАЖИТЕ НАМ ВРАЩЕНИЕ ЗЕМЛИ"
ГИРОСКОП
КАПРИЗНОЕ ИЗОБРЕТЕНИЕ ГЕНРИ УАЙТХЕДА
ЛЕЙТЕНАНТ ОБРИ БЕРЕТСЯ ЗА "НЕРАЗРЕШИМУЮ ЗАДАЧУ"
КРУПНЫЕ НЕПРИЯТНОСТИ, ПРОИСХОДЯЩИЕ С ЖЕЛЕЗНЫМИ ПАРОХОДАМИ
ДОКЛАД СКОРСБИ, ДОКТОРА БОГОСЛОВИЯ
КОМПАСЫ ОКОНЧАТЕЛЬНО ТЕРЯЮТ ГОЛОВУ
КАК АНШЮТЦ И СПЕРРИ ПРЕВРАТИЛИ ВОЛЧОК В КОМПАС
ТРИ МЕХАНИЧЕСКИХ ПОМОЩНИКА ШТУРМАНА
КОРАБЛЬ-РОБОТ
РОБОТ-ПИЛОТ
НЕМНОГО ИСТОРИИ
ГЛАВА ЧЕТВЕРТАЯ. СЛЫШАЩИЕ РОБОТЫ
ЛАМПЫ ПОЛУЧАЮТ СЛУХ
РОБОТ-ПОЛИСМЕН И ШАЛУНЫ
КАК КОМАР МОЖЕТ ВЫСТРЕЛИТЬ ИЗ ПУШКИ
"МИСТЕР ТЕЛЕВОКС" И ЕГО РАЗНОСТОРОННИЕ СПОСОБНОСТИ
МЕХАНИЧЕСКИЙ "МОЗГ" ТЕЛЕВОКСА
КАК "МИСТЕР ТЕЛЕВОКС" НАУЧИЛСЯ ГОВОРИТЬ
ТЕЛЕВОКС НА РАБОТЕ
БРАТЬЯ ТЕЛЕВОКСА (36)
"ТЕАТР АВТОМАТОВ" (36)
НЕКОТОРЫЕ ПРОЕКТЫ, А МОЖЕТ БЫТЬ, И ДОСТИЖЕНИЯ (36)
ГЛАВА ПЯТАЯ. ВИДЯЩИЕ РОБОТЫ
ГОРЯЩАЯ СПИЧКА, БРОШЕННАЯ В БАК С БЕНЗИНОМ
НЕВИДИМЫЕ СЧЕТЧИКИ
"ЛУННОЕ ВЕЩЕСТВО"
СЕЛЕНОВЫЕ ЭЛЕМЕНТЫ
МИЛЛИОН ТРИСТА ТЫСЯЧ ЛЕТ ДЛЯ ОДНОЙ СЕКУНДЫ
"БЕСПОЛЕЗНОЕ ОТКРЫТИЕ" (36)
ФОТОЭЛЕКТРИЧЕСКИЕ ЭЛЕМЕНТЫ
"УЛЬТРАФИОЛЕТОВЫЙ ШВЕЙЦАР"
"ИНФРАКРАСНЫЙ СТОРОЖ"
ЭЛЕКТРИЧЕСКИЕ СОРТИРОВЩИКИ
ПОМОЩНИК КОЧЕГАРА, СИДЯЩИЙ В ТРУБЕ
РОБОТ-ХИМИК
ЭЛЕКТРИЧЕСКИЙ ГЛАЗ "ВЗВЕШИВАЕТ" БУМАГУ
ЕЩЕ ОДИН БРАТ ТЕЛЕВОКСА - ТЕЛЕЛЮКС
"ВИДЯЩИЙ" АВТОМОБИЛЬ
ЭЛЕКТРИЧЕСКАЯ СОБАКА
ЧТО СКРЫВАЕТСЯ ЗА СМЕШНОЙ СОБАЧКОЙ
"ВИДЯЩИЙ" СТАНОК (36)
ЗВЕЗДА ОТКРЫВАЕТ ВЫСТАВКУ (36)
РОБОТ-СТЕНОГРАФ (36)
ЧИТАЮЩИЕ РОБОТЫ (36)
МЕХАНИЧЕСКИЙ НАБОРЩИК (36)
ЕЩЕ НЕМНОГО О МНОГОМ (31)
ГЛАВА ШЕСТАЯ. РАДИОРОБОТЫ
SOS-АВТОМАТЫ
КНОПКА МАРКОНИ
СТРАННЫЕ АВТОМОБИЛИ
РАДИОЛОДКИ
ТАИНСТВЕННЫЕ СОБЫТИЯ В НЬЮПОРТЕ
"ЭТО СОВСЕМ НЕ ИГРУШКА"
ДРЕДНОУТЫ БЕЗ КОМАНДЫ
"ЦЕНТУРИОН" И "ЦЕРИНГЕН"
АЭРОПЛАНЫ БЕЗ ЛЕТЧИКОВ
МОДЕЛИ, УПРАВЛЯЕМЫЕ ПО РАДИО (36)
ГЛАВА СЕДЬМАЯ. ЗАВОДЫ-АВТОМАТЫ
МАШИНА ДЛЯ ИЗГОТОВЛЕНИЯ СИГАР
СТАЛЬНЫЕ СТЕКЛОДУВЫ
МАШИНЫ-КОМБАЙНЫ (36)
БУМАЖНАЯ ФАБРИКА (36)
ЛАМПОВЫЕ ЗАВОДЫ (36)
ЗАВОД КОМПАНИИ СМИТА
ХЛЕБОЗАВОДЫ
ТЕЛЕМЕХАНИКА
ВЕК РАЗУМНЫХ МАШИН (36)
ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА ДЛЯ ДАЛЬНЕЙШЕГО ЧТЕНИЯ (36)
Последний раз редактировалось: Gudleifr (Ср Окт 09, 2024 9:48 am), всего редактировалось 2 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Казалось бы, уже в 30 годы почти достигли состояния "вкалывают роботы, счастлив человек". Но тут что-то пошло не так. Не получается просто копировать природу в железе, даже, если удастся соорудить "электрические нейроны". Поэтому книга Альфреда Дж.Коута В ПОИСКАХ РОБОТОВ гораздо менее оптимистична.
Даже овладев механикой-электроникой какого либо "разумного" процесса, мы не всегда можем им разумно управлять.
PDF, 12.8Мб
АЛЬФРЕД ДЖ.КОУТ
В ПОИСКАХ РОБОТОВ
ALFRED J.COTE
THE SEARCH FOR THE ROBOTS
"МИР" 1970
ОТ ПЕРЕВОДЧИКА
ПРЕДИСЛОВИЕ АВТОРА
ГЛАВА ПЕРВАЯ. ЗАЧЕМ И КАК
ГЛАВА ВТОРАЯ. УХИЩРЕНИЯ ПРИРОДЫ
ГЛАВА ТРЕТЬЯ. НЕРВЫ И ИХ ИМИТАТОРЫ
ГЛАВА ЧЕТВЕРТАЯ. ПОНЯТИЕ О НЕЙРИСТОРЕ
ГЛАВА ПЯТАЯ. МАШИНЫ, КОТОРЫЕ ОБУЧАЮТСЯ
ГЛАВА ШЕСТАЯ. РАСПОЗНАВАНИЕ ЗРИТЕЛЬНЫХ ОБРАЗОВ ЖИВОТНЫМИ И МАШИНОЙ
ГЛАВА СЕДЬМАЯ. РАСПОЗНАВАНИЕ РЕЧИ И СВЯЗАННЫЕ С ЭТИМ ПРОБЛЕМЫ
ГЛАВА ВОСЬМАЯ. РОБОТЫ - БИБЛИОТЕКАРИ, ИГРОКИ В ШАШКИ И БЕЙСБОЛЬНЫЕ БОЛЕЛЬЩИКИ
ГЛАВА ДЕВЯТАЯ. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
ЛИТЕРАТУРА
Здесь мы уже встречаем одно из трудных в изучении программистских понятий - нейрон (естественный и искусственный) - единичная ячейка разумного мозга.
Даже овладев механикой-электроникой какого либо "разумного" процесса, мы не всегда можем им разумно управлять.
PDF, 12.8Мб
АЛЬФРЕД ДЖ.КОУТ
В ПОИСКАХ РОБОТОВ
ALFRED J.COTE
THE SEARCH FOR THE ROBOTS
"МИР" 1970
ОТ ПЕРЕВОДЧИКА
ПРЕДИСЛОВИЕ АВТОРА
ГЛАВА ПЕРВАЯ. ЗАЧЕМ И КАК
ГЛАВА ВТОРАЯ. УХИЩРЕНИЯ ПРИРОДЫ
ГЛАВА ТРЕТЬЯ. НЕРВЫ И ИХ ИМИТАТОРЫ
ГЛАВА ЧЕТВЕРТАЯ. ПОНЯТИЕ О НЕЙРИСТОРЕ
ГЛАВА ПЯТАЯ. МАШИНЫ, КОТОРЫЕ ОБУЧАЮТСЯ
ГЛАВА ШЕСТАЯ. РАСПОЗНАВАНИЕ ЗРИТЕЛЬНЫХ ОБРАЗОВ ЖИВОТНЫМИ И МАШИНОЙ
ГЛАВА СЕДЬМАЯ. РАСПОЗНАВАНИЕ РЕЧИ И СВЯЗАННЫЕ С ЭТИМ ПРОБЛЕМЫ
ГЛАВА ВОСЬМАЯ. РОБОТЫ - БИБЛИОТЕКАРИ, ИГРОКИ В ШАШКИ И БЕЙСБОЛЬНЫЕ БОЛЕЛЬЩИКИ
ГЛАВА ДЕВЯТАЯ. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
ЛИТЕРАТУРА
Здесь мы уже встречаем одно из трудных в изучении программистских понятий - нейрон (естественный и искусственный) - единичная ячейка разумного мозга.
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Какая же связь между описанными неуклюжими электрическими ГОЛЕМАМИ и цифровыми ВЫЧИСЛИТЕЛЯМИ? Она - в математике. Которую, в виде мысленных моделей мозгов, добавили к железным моделям органов КИБЕРНЕТИКИ. Конечно, они тоже не отказывали себе в удовольствии изобразить для иллюстрации что-то бибикающее и гудящее, но в предлагаемой книге железяки только упоминаются.
DJVU, 5.68Мб
СТАФФОРД БИР. КИБЕРНЕТИКА И УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ. 1965
ПРЕДИСЛОВИЕ К ПЕРВОМУ РУССКОМУ ИЗДАНИЮ
ОТ ИЗДАТЕЛЬСТВА
ПРЕДИСЛОВИЕ АВТОРА
ОТ АВТОРА
ГЛАВА 1. ВВЕДЕНИЕ
ЧАСТЬ I. ОСНОВНЫЕ ПОНЯТИЯ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 2. СИСТЕМЫ КАК ПРЕДМЕТ ИССЛЕДОВАНИЯ
ИССЛЕДОВАНИЕ СИСТЕМ
ПРОИЗВОЛЬНАЯ КЛАССИФИКАЦИЯ СИСТЕМ
ГЛАВА 3. СУЩНОСТЬ УПРАВЛЕНИЯ
ГЛАВА 4. УНИВЕРСАЛЬНОСТЬ ОБРАТНОЙ СВЯЗИ
ОСНОВНАЯ ИДЕЯ ОБРАТНОЙ СВЯЗИ
ОБРАТНАЯ СВЯЗЬ В ЭКОНОМИЧЕСКИХ СИСТЕМАХ
ОБРАТНАЯ СВЯЗЬ В ВЫСШЕЙ НЕРВНОЙ ДЕЯТЕЛЬНОСТИ
ГЛАВА 5. ЦЕЛЕСООБРАЗНЫЕ СИСТЕМЫ И ИНФОРМАЦИЯ
МАШИНЫ КАК ЦЕЛЕСООБРАЗНЫЕ СИСТЕМЫ
ТЕОРИЯ ИНФОРМАЦИИ
ГЛАВА 6. "ЧЕРНЫЙ ЯЩИК"
ЧАСТЬ II. ЛОГИЧЕСКИЕ ОСНОВЫ КИБЕРНЕТИКИ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 7. КИБЕРНЕТИКА КАК НОВАЯ НАУКА
ГЛАВА 8. ЛОГИЧЕСКИЕ НАЧАЛА
ГЛАВА 9. ПРИНЦИП ВНЕШНЕГО ДОПОЛНЕНИЯ
ГЛАВА 10. ЭФФЕКТИВНОСТЬ ДВОИЧНОЙ СИСТЕМЫ СЧИСЛЕНИЯ
ГЛАВА 11. ТЕОРИЯ АВТОМАТОВ
МАШИНЫ ТЬЮРИНГА
КОНЕЧНЫЕ АВТОМАТЫ
ЧАСТЬ III. БИОФИЗИЧЕСКИЕ ОСНОВЫ КИБЕРНЕТИКИ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 12. МАТЕМАТИЧЕСКАЯ БИОФИЗИКА
ГЛАВА 13. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ СВОЙСТВ АДАПТАЦИИ
ГЛАВА 14. ОБУЧАЮЩИЕСЯ И ОБУЧАЮЩИЕ МАШИНЫ
ГЛАВА 15. РАЗУМНЫЕ САМОПРИСПОСАБЛИВАЮЩИЕСЯ МАШИНЫ
ГЛАВА 16. ОБЛИК КИБЕРНЕТИЧЕСКОГО ПРЕДПРИЯТИЯ
ЧАСТЬ IV. КИБЕРНЕТИЧЕСКАЯ ТЕОРИЯ МОДЕЛЕЙ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 17. МОДЕЛЬ ЖИВЫХ ТКАНЕЙ
ГЛАВА 18. МОДЕЛЬ МЕХАНИЗМА УПРАВЛЕНИЯ
СИСТЕМЫ АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ И СИСТЕМЫ ПООЩРЕНИЙ
МЕХАНИЗМ УПРАВЛЕНИЯ И ЕГО РЕАЛИЗАЦИЯ
ГЛАВА 19. МОДЕЛЬ НЕОПРЕДЕЛЕННОСТИ
ПОСТАНОВКА ЗАДАЧИ
ФИЛОСОФСКИЙ ПАРАДОКС
МЕХАНИКА НЕОПРЕДЕЛЕННОСТИ
ГЛАВА 20. МОДЕЛЬ ЯЗЫКА
ЛИТЕРАТУРА
ДОПОЛНЕНИЕ
(Я не стал выкладывать эти статьи. Но они есть в указанном в каталоге DJVU-файле.- G.)
МИФОЛОГИЯ СИСТЕМ - ПОД СВОДОМ СУМЕРЕК
I. О МИФАХ ПОРЯДКА И ХАОСА
ПРОИСХОЖДЕНИЕ МИФОВ И ПРИЧИНЫ ИХ ЖИВУЧЕСТИ
КРИТИКА МИФОВ
ЧЕМ ЗАМЕНИТЬ МИФЫ
МИФЫ И ОРГАНИЗАЦИОННОЕ УПРАВЛЕНИЕ
II. МИФЫ О ЧАСТЯХ И ЦЕЛОМ
МИФЫ РАЗДЕЛЕНИЯ И ОБЪЕДИНЕНИЯ
ЗНАЧЕНИЕ ЭТИХ МИФОВ
К ОТМЕНЕ МИФОВ
РАЦИОНАЛЬНЫЕ СЛЕДСТВИЯ НЕРАЦИОНАЛЬНЫХ ДЕЙСТВИЙ
ДЕЛО НЕ В АВТОМАТИЗАЦИИ
ВТОРАЯ ПРОМЫШЛЕННАЯ РЕВОЛЮЦИЯ
РОЛЬ КИБЕРНЕТИКИ
ПРИРОДА КИБЕРНЕТИКИ
ВОЗНИКНОВЕНИЕ КИБЕРНЕТИКИ
УПРАВЛЕНИЕ В ПРОМЫШЛЕННОСТИ
ПРИМЕРНАЯ ИЛЛЮСТРАЦИЯ
ЗАКЛЮЧЕНИЕ
ТЕХНИЧЕСКИЕ АСПЕКТЫ КИБЕРНЕТИЧЕСКОЙ МОДЕЛИ ПЕРСПЕКТИВНОГО ОПЕРАТИВНОГО ПЛАНИРОВАНИЯ
1. ВВЕДЕНИЕ
А. РОЛЬ ПЕРСПЕКТИВНОГО И ОПЕРАТИВНОГО ПЛАНИРОВАНИЯ
Б. ВЛИЯНИЕ АВТОМАТИЗАЦИИ
В. ЧЕЛОВЕЧЕСКАЯ ПРОБЛЕМА
II. ЭВРИСТИЧЕСКИЕ РЕЗУЛЬТАТЫ
А. СТРУКТУРА УПРАВЛЕНИЯ ПРОИЗВОДСТВОМ
Б. РОЛЬ ОПЕРАЦИОННЫХ ИССЛЕДОВАНИЙ
В. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ЭВРИСТИЧЕСКИХ РЕЗУЛЬТАТОВ
III. ПРЕДВАРИТЕЛЬНЫЙ ЭТАП АВТОМАТИЗАЦИИ
А. НЕПРЕРЫВНЫЙ КОНТРОЛЬ ЗА СОСТОЯНИЕМ СИСТЕМЫ
Б. ДЕТАЛЬНЫЙ КОНТРОЛЬ ЗА СОСТОЯНИЕМ КАЖДОГО ПРОЦЕССА
В. АВТОМАТИЧЕСКАЯ ФИЛЬТРАЦИЯ ИНФОРМАЦИИ
IV. СЛЕДУЮЩИЙ ЭТАП
А. ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Б. КИБЕРНЕТИЧЕСКИЙ ПОДХОД К СОЗДАНИЮ МОДЕЛЕЙ МОЗГА
В. ЗАМЕЧАНИЯ О СОВРЕМЕННОМ СОСТОЯНИИ ПРОБЛЕМЫ
V. О ПОСТРОЕНИИ МОДЕЛИ МОЗГА
А. ПРИГОДНОСТЬ ЭЛЕКТРИЧЕСКОЙ МОДЕЛИ
Б. ПРИГОДНОСТЬ ЭЛЕКТРОННЫХ ЭЛЕМЕНТОВ
В. ВОПРОС ОБ ЭКВИФИНАЛЬНОСТИ
Г. НЕКОТОРЫЕ РЕЗУЛЬТАТЫ ИЗ ЛОГИКИ МЕТАЯЗЫКОВ
ЛИТЕРАТУРА
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ И КИБЕРНЕТИКА
I. ВВЕДЕНИЕ
А. ОБЩНОСТЬ
Б. НАПРАВЛЕНИЕ ОПЕРАЦИОННЫХ ИССЛЕДОВАНИЙ
В. НАПРАВЛЕНИЕ КИБЕРНЕТИКИ
Г. ОБЩНОСТЬ В ПРОИЗВОДСТВЕННОМ КОНТЕКСТЕ
II. ПРИЧИННОСТЬ
А. КЛАССИФИКАЦИЯ С ТОЧКИ ЗРЕНИЯ ПРИЧИННОСТИ
Б. КАУЗАЛЬНЫЕ ВЗАИМОДЕЙСТВИЯ
В. ПРИЛОЖЕНИЕ К ТЕОРИИ АВТОМАТОВ И КИБЕРНЕТИЧЕСКИХ МАШИН
Г. ВОЗМОЖНОСТЬ ПОСТРОЕНИЯ КИБЕРНЕТИЧЕСКОГО ГОМЕОСТАТА
Д. ФОРМАЛЬНОЕ ИЗЛОЖЕНИЕ
III. МОДЕЛИРОВАНИЕ СТОХАСТИЧЕСКОГО ПОВЕДЕНИЯ
А. СТОХАСТИЧЕСКОЕ ПОВЕДЕНИЕ И ЕГО ОПИСАНИЕ
Б. МАТЕМАТИЧЕСКИЕ МОДЕЛИ НЕКОТОРЫХ СТОХАСТИЧЕСКИХ СИТУАЦИЙ
В. ОПЕРАЦИОННОЕ ИССЛЕДОВАНИЕ СИСТЕМ С ПОМОЩЬЮ МОДЕЛИРОВАНИЯ
Г. ЗНАЧЕНИЯ СТОХАСТИЧЕСКОЙ МОДЕЛИ ДЛЯ КИБЕРНЕТИКИ
Д. ПРОЛЕГОМЕНЫ К ТЕОРИИ СТОХАСТИЧЕСКИХ ИГР
ЛИТЕРАТУРА
Главное же, на что мы должны обратить внимание, что ЭВМ - это только самый тупой способ реализовать (перевести из математической задумки в железо) конечные автоматы и машины Тьюринга. Технологические отходы кибернетической науки.
DJVU, 5.68Мб
СТАФФОРД БИР. КИБЕРНЕТИКА И УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ. 1965
ПРЕДИСЛОВИЕ К ПЕРВОМУ РУССКОМУ ИЗДАНИЮ
ОТ ИЗДАТЕЛЬСТВА
ПРЕДИСЛОВИЕ АВТОРА
ОТ АВТОРА
ГЛАВА 1. ВВЕДЕНИЕ
ЧАСТЬ I. ОСНОВНЫЕ ПОНЯТИЯ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 2. СИСТЕМЫ КАК ПРЕДМЕТ ИССЛЕДОВАНИЯ
ИССЛЕДОВАНИЕ СИСТЕМ
ПРОИЗВОЛЬНАЯ КЛАССИФИКАЦИЯ СИСТЕМ
ГЛАВА 3. СУЩНОСТЬ УПРАВЛЕНИЯ
ГЛАВА 4. УНИВЕРСАЛЬНОСТЬ ОБРАТНОЙ СВЯЗИ
ОСНОВНАЯ ИДЕЯ ОБРАТНОЙ СВЯЗИ
ОБРАТНАЯ СВЯЗЬ В ЭКОНОМИЧЕСКИХ СИСТЕМАХ
ОБРАТНАЯ СВЯЗЬ В ВЫСШЕЙ НЕРВНОЙ ДЕЯТЕЛЬНОСТИ
ГЛАВА 5. ЦЕЛЕСООБРАЗНЫЕ СИСТЕМЫ И ИНФОРМАЦИЯ
МАШИНЫ КАК ЦЕЛЕСООБРАЗНЫЕ СИСТЕМЫ
ТЕОРИЯ ИНФОРМАЦИИ
ГЛАВА 6. "ЧЕРНЫЙ ЯЩИК"
ЧАСТЬ II. ЛОГИЧЕСКИЕ ОСНОВЫ КИБЕРНЕТИКИ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 7. КИБЕРНЕТИКА КАК НОВАЯ НАУКА
ГЛАВА 8. ЛОГИЧЕСКИЕ НАЧАЛА
ГЛАВА 9. ПРИНЦИП ВНЕШНЕГО ДОПОЛНЕНИЯ
ГЛАВА 10. ЭФФЕКТИВНОСТЬ ДВОИЧНОЙ СИСТЕМЫ СЧИСЛЕНИЯ
ГЛАВА 11. ТЕОРИЯ АВТОМАТОВ
МАШИНЫ ТЬЮРИНГА
КОНЕЧНЫЕ АВТОМАТЫ
ЧАСТЬ III. БИОФИЗИЧЕСКИЕ ОСНОВЫ КИБЕРНЕТИКИ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 12. МАТЕМАТИЧЕСКАЯ БИОФИЗИКА
ГЛАВА 13. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ СВОЙСТВ АДАПТАЦИИ
ГЛАВА 14. ОБУЧАЮЩИЕСЯ И ОБУЧАЮЩИЕ МАШИНЫ
ГЛАВА 15. РАЗУМНЫЕ САМОПРИСПОСАБЛИВАЮЩИЕСЯ МАШИНЫ
ГЛАВА 16. ОБЛИК КИБЕРНЕТИЧЕСКОГО ПРЕДПРИЯТИЯ
ЧАСТЬ IV. КИБЕРНЕТИЧЕСКАЯ ТЕОРИЯ МОДЕЛЕЙ
КРАТКОЕ СОДЕРЖАНИЕ
ГЛАВА 17. МОДЕЛЬ ЖИВЫХ ТКАНЕЙ
ГЛАВА 18. МОДЕЛЬ МЕХАНИЗМА УПРАВЛЕНИЯ
СИСТЕМЫ АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ И СИСТЕМЫ ПООЩРЕНИЙ
МЕХАНИЗМ УПРАВЛЕНИЯ И ЕГО РЕАЛИЗАЦИЯ
ГЛАВА 19. МОДЕЛЬ НЕОПРЕДЕЛЕННОСТИ
ПОСТАНОВКА ЗАДАЧИ
ФИЛОСОФСКИЙ ПАРАДОКС
МЕХАНИКА НЕОПРЕДЕЛЕННОСТИ
ГЛАВА 20. МОДЕЛЬ ЯЗЫКА
ЛИТЕРАТУРА
ДОПОЛНЕНИЕ
(Я не стал выкладывать эти статьи. Но они есть в указанном в каталоге DJVU-файле.- G.)
МИФОЛОГИЯ СИСТЕМ - ПОД СВОДОМ СУМЕРЕК
I. О МИФАХ ПОРЯДКА И ХАОСА
ПРОИСХОЖДЕНИЕ МИФОВ И ПРИЧИНЫ ИХ ЖИВУЧЕСТИ
КРИТИКА МИФОВ
ЧЕМ ЗАМЕНИТЬ МИФЫ
МИФЫ И ОРГАНИЗАЦИОННОЕ УПРАВЛЕНИЕ
II. МИФЫ О ЧАСТЯХ И ЦЕЛОМ
МИФЫ РАЗДЕЛЕНИЯ И ОБЪЕДИНЕНИЯ
ЗНАЧЕНИЕ ЭТИХ МИФОВ
К ОТМЕНЕ МИФОВ
РАЦИОНАЛЬНЫЕ СЛЕДСТВИЯ НЕРАЦИОНАЛЬНЫХ ДЕЙСТВИЙ
ДЕЛО НЕ В АВТОМАТИЗАЦИИ
ВТОРАЯ ПРОМЫШЛЕННАЯ РЕВОЛЮЦИЯ
РОЛЬ КИБЕРНЕТИКИ
ПРИРОДА КИБЕРНЕТИКИ
ВОЗНИКНОВЕНИЕ КИБЕРНЕТИКИ
УПРАВЛЕНИЕ В ПРОМЫШЛЕННОСТИ
ПРИМЕРНАЯ ИЛЛЮСТРАЦИЯ
ЗАКЛЮЧЕНИЕ
ТЕХНИЧЕСКИЕ АСПЕКТЫ КИБЕРНЕТИЧЕСКОЙ МОДЕЛИ ПЕРСПЕКТИВНОГО ОПЕРАТИВНОГО ПЛАНИРОВАНИЯ
1. ВВЕДЕНИЕ
А. РОЛЬ ПЕРСПЕКТИВНОГО И ОПЕРАТИВНОГО ПЛАНИРОВАНИЯ
Б. ВЛИЯНИЕ АВТОМАТИЗАЦИИ
В. ЧЕЛОВЕЧЕСКАЯ ПРОБЛЕМА
II. ЭВРИСТИЧЕСКИЕ РЕЗУЛЬТАТЫ
А. СТРУКТУРА УПРАВЛЕНИЯ ПРОИЗВОДСТВОМ
Б. РОЛЬ ОПЕРАЦИОННЫХ ИССЛЕДОВАНИЙ
В. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ЭВРИСТИЧЕСКИХ РЕЗУЛЬТАТОВ
III. ПРЕДВАРИТЕЛЬНЫЙ ЭТАП АВТОМАТИЗАЦИИ
А. НЕПРЕРЫВНЫЙ КОНТРОЛЬ ЗА СОСТОЯНИЕМ СИСТЕМЫ
Б. ДЕТАЛЬНЫЙ КОНТРОЛЬ ЗА СОСТОЯНИЕМ КАЖДОГО ПРОЦЕССА
В. АВТОМАТИЧЕСКАЯ ФИЛЬТРАЦИЯ ИНФОРМАЦИИ
IV. СЛЕДУЮЩИЙ ЭТАП
А. ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Б. КИБЕРНЕТИЧЕСКИЙ ПОДХОД К СОЗДАНИЮ МОДЕЛЕЙ МОЗГА
В. ЗАМЕЧАНИЯ О СОВРЕМЕННОМ СОСТОЯНИИ ПРОБЛЕМЫ
V. О ПОСТРОЕНИИ МОДЕЛИ МОЗГА
А. ПРИГОДНОСТЬ ЭЛЕКТРИЧЕСКОЙ МОДЕЛИ
Б. ПРИГОДНОСТЬ ЭЛЕКТРОННЫХ ЭЛЕМЕНТОВ
В. ВОПРОС ОБ ЭКВИФИНАЛЬНОСТИ
Г. НЕКОТОРЫЕ РЕЗУЛЬТАТЫ ИЗ ЛОГИКИ МЕТАЯЗЫКОВ
ЛИТЕРАТУРА
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ И КИБЕРНЕТИКА
I. ВВЕДЕНИЕ
А. ОБЩНОСТЬ
Б. НАПРАВЛЕНИЕ ОПЕРАЦИОННЫХ ИССЛЕДОВАНИЙ
В. НАПРАВЛЕНИЕ КИБЕРНЕТИКИ
Г. ОБЩНОСТЬ В ПРОИЗВОДСТВЕННОМ КОНТЕКСТЕ
II. ПРИЧИННОСТЬ
А. КЛАССИФИКАЦИЯ С ТОЧКИ ЗРЕНИЯ ПРИЧИННОСТИ
Б. КАУЗАЛЬНЫЕ ВЗАИМОДЕЙСТВИЯ
В. ПРИЛОЖЕНИЕ К ТЕОРИИ АВТОМАТОВ И КИБЕРНЕТИЧЕСКИХ МАШИН
Г. ВОЗМОЖНОСТЬ ПОСТРОЕНИЯ КИБЕРНЕТИЧЕСКОГО ГОМЕОСТАТА
Д. ФОРМАЛЬНОЕ ИЗЛОЖЕНИЕ
III. МОДЕЛИРОВАНИЕ СТОХАСТИЧЕСКОГО ПОВЕДЕНИЯ
А. СТОХАСТИЧЕСКОЕ ПОВЕДЕНИЕ И ЕГО ОПИСАНИЕ
Б. МАТЕМАТИЧЕСКИЕ МОДЕЛИ НЕКОТОРЫХ СТОХАСТИЧЕСКИХ СИТУАЦИЙ
В. ОПЕРАЦИОННОЕ ИССЛЕДОВАНИЕ СИСТЕМ С ПОМОЩЬЮ МОДЕЛИРОВАНИЯ
Г. ЗНАЧЕНИЯ СТОХАСТИЧЕСКОЙ МОДЕЛИ ДЛЯ КИБЕРНЕТИКИ
Д. ПРОЛЕГОМЕНЫ К ТЕОРИИ СТОХАСТИЧЕСКИХ ИГР
ЛИТЕРАТУРА
Главное же, на что мы должны обратить внимание, что ЭВМ - это только самый тупой способ реализовать (перевести из математической задумки в железо) конечные автоматы и машины Тьюринга. Технологические отходы кибернетической науки.
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Конечно, "настоящий программист" (читай, математик) после прочтения книги Бира, все-таки просмотрит сборник "Автоматы" ТЕМА #135, АБЗАЦ #2819, где приведены основные теоремы для нейронных сетей и машин Тьюринга. Но нас здесь больше интересует из какого "железа" можно эти "машины" сделать.
В автоматах 30-х годов мы видели реле и шаговые переключатели, позволяющие машинам помнить свое состояние. С появлением электроники эти устройства стало возможным делать без механических движущихся частей. Оказалось, электронные лампы (а, позднее,- транзисторы) вполне могут запирать/открывать ток в одной цепи при наличии тока в другой. Но, в отличие от реле, делать это без потерь на трение и временных задержек на переключение контактов. Была снята граница количества "ячеек" машины.
Т.о. появление ВЫЧИСЛИТЕЛЕЙ стало возможным при появлении большого числа однотипных электронных "ячеек". Например, в учебной машине - УЧЕБНАЯ ЦИФРОВАЯ ВЫЧИСЛИТЕЛЬНАЯ МАШИНА, БИБЛИОТЕКА ПО АВТОМАТИКЕ #84, 1963 - было 17 видов ячеек следующих основных типов:
1) триггеры;
2) инверторы;
3) импульсные усилители;
4) формирователи, блокинг-генераторы;
5) логические схемы с ламповыми усилителями (клапаны);
6) логические схемы на кристаллических диодах (дешифраторы, сборки - логические схемы ИЛИ).
Можно видеть, что "ячейки" (кроме технически-вспомогательных) можно поделить на две группы - запоминающие и что-то делающие/считающие).
Тут надо вспомнить, что человек строит нить рассуждения либо просматривая уже накопленные факты и логически выводя из них новые факты-выводы, либо, исходя из цели доказательства, подбирая нужные предварительные факты, которые нужно доказать/проверить, чтобы перейти к главной теореме. Так же человек и считает: арифметически - накапливая промежуточные результаты, либо алгебраически - разбивая сложную функцию на мелкие части и вычисляя их по мере необходимости.
Для получения машинного вычисления первым способом нужны, в основном, ячейки для хранения промежуточных результатов, вторым - нужно правильно соединять между собой вычислительные ячейки. Так некоторое время сосуществовали два вида вычислительных машин - цифровые (с запоминающими ячейками) и аналоговые (с функциональными ячейками).
Самое время почитать одну из первых книжек про вычислительные машины (более раннюю - А.И.КИТОВ, ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ, 1956 - читать не будем, она толще) - А.И.КИТОВ, ЭЛЕКТРОННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, 1958 PDF, 10.6Мб.
ЗНАЧЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
ЭЛЕКТРОННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ НЕПРЕРЫВНОГО ДЕЙСТВИЯ
ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ
УСТРОЙСТВО ЭЛЕКТРОННЫХ ЦИФРОВЫХ МАШИН
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН ДЛЯ МАТЕМАТИЧЕСКИХ ВЫЧИСЛЕНИЙ
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ МАШИН В ОБЛАСТИ ЭКОНОМИКИ И УПРАВЛЕНИЯ
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН ДЛЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ПРОИЗВОДСТВЕННЫМИ ПРОЦЕССАМИ
Запоминающая ячейка на транзисторе (торчит) и ферритовом колечке (залито эпоксидной смолой). Всего на один бит. Сейчас этих битов в одной ячейке под сотню, а ячеек в машине - триллионы.
Победили, как все знают, цифровые машины. Инженеры двадцатого века так и не смогли собрать искусственный нейрон, но смогли засунуть в машину столько запоминающих ячеек, что их хватило для описания и запоминания математических моделей сложных нейронных систем. Функциональные же ячейки сократились до минимального набора операций над ячейками - передачи данных из ячейки в ячейку и арифметических/логических операций над парой ячеек.
Программируемый калькулятор - пара десятков больших ячеек для хранения чисел, сотня маленьких ячеек для хранения программы (запоминания, какие клавиши роботу надо "нажимать") и функциональные ячейки, связанные с клавишами. На фото - правка программы, на экранчике высвечивается содержимое 4-х программных ячеек.
Пульт управления самодельного компьютера - панель, позволяющая ручной доступ к запоминающим ячейкам основной памяти - путем ввода адреса и значения.
В современных машинах с их триллионами ячеек человек практически не имеет доступа к функциональным ячейкам, он имеет дело только с "высшими функциями", программы которых сохранены в запоминающих ячейках.
Мечта Бира о "живом материале" для вычислительных машин воплотилась в жизнь путем переноса конструирования машин с "железа" в "программное обеспечение". Электронные копии, в отличие от железных можно размножать и корректировать бесконечно.
В автоматах 30-х годов мы видели реле и шаговые переключатели, позволяющие машинам помнить свое состояние. С появлением электроники эти устройства стало возможным делать без механических движущихся частей. Оказалось, электронные лампы (а, позднее,- транзисторы) вполне могут запирать/открывать ток в одной цепи при наличии тока в другой. Но, в отличие от реле, делать это без потерь на трение и временных задержек на переключение контактов. Была снята граница количества "ячеек" машины.
Т.о. появление ВЫЧИСЛИТЕЛЕЙ стало возможным при появлении большого числа однотипных электронных "ячеек". Например, в учебной машине - УЧЕБНАЯ ЦИФРОВАЯ ВЫЧИСЛИТЕЛЬНАЯ МАШИНА, БИБЛИОТЕКА ПО АВТОМАТИКЕ #84, 1963 - было 17 видов ячеек следующих основных типов:
1) триггеры;
2) инверторы;
3) импульсные усилители;
4) формирователи, блокинг-генераторы;
5) логические схемы с ламповыми усилителями (клапаны);
6) логические схемы на кристаллических диодах (дешифраторы, сборки - логические схемы ИЛИ).
Можно видеть, что "ячейки" (кроме технически-вспомогательных) можно поделить на две группы - запоминающие и что-то делающие/считающие).
Тут надо вспомнить, что человек строит нить рассуждения либо просматривая уже накопленные факты и логически выводя из них новые факты-выводы, либо, исходя из цели доказательства, подбирая нужные предварительные факты, которые нужно доказать/проверить, чтобы перейти к главной теореме. Так же человек и считает: арифметически - накапливая промежуточные результаты, либо алгебраически - разбивая сложную функцию на мелкие части и вычисляя их по мере необходимости.
Для получения машинного вычисления первым способом нужны, в основном, ячейки для хранения промежуточных результатов, вторым - нужно правильно соединять между собой вычислительные ячейки. Так некоторое время сосуществовали два вида вычислительных машин - цифровые (с запоминающими ячейками) и аналоговые (с функциональными ячейками).
Самое время почитать одну из первых книжек про вычислительные машины (более раннюю - А.И.КИТОВ, ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ, 1956 - читать не будем, она толще) - А.И.КИТОВ, ЭЛЕКТРОННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, 1958 PDF, 10.6Мб.
ЗНАЧЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
ЭЛЕКТРОННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ НЕПРЕРЫВНОГО ДЕЙСТВИЯ
ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ
УСТРОЙСТВО ЭЛЕКТРОННЫХ ЦИФРОВЫХ МАШИН
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН ДЛЯ МАТЕМАТИЧЕСКИХ ВЫЧИСЛЕНИЙ
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ЦИФРОВЫХ МАШИН В ОБЛАСТИ ЭКОНОМИКИ И УПРАВЛЕНИЯ
ПРИМЕНЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН ДЛЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ПРОИЗВОДСТВЕННЫМИ ПРОЦЕССАМИ
Запоминающая ячейка на транзисторе (торчит) и ферритовом колечке (залито эпоксидной смолой). Всего на один бит. Сейчас этих битов в одной ячейке под сотню, а ячеек в машине - триллионы.
Победили, как все знают, цифровые машины. Инженеры двадцатого века так и не смогли собрать искусственный нейрон, но смогли засунуть в машину столько запоминающих ячеек, что их хватило для описания и запоминания математических моделей сложных нейронных систем. Функциональные же ячейки сократились до минимального набора операций над ячейками - передачи данных из ячейки в ячейку и арифметических/логических операций над парой ячеек.
Программируемый калькулятор - пара десятков больших ячеек для хранения чисел, сотня маленьких ячеек для хранения программы (запоминания, какие клавиши роботу надо "нажимать") и функциональные ячейки, связанные с клавишами. На фото - правка программы, на экранчике высвечивается содержимое 4-х программных ячеек.
Пульт управления самодельного компьютера - панель, позволяющая ручной доступ к запоминающим ячейкам основной памяти - путем ввода адреса и значения.
В современных машинах с их триллионами ячеек человек практически не имеет доступа к функциональным ячейкам, он имеет дело только с "высшими функциями", программы которых сохранены в запоминающих ячейках.
Мечта Бира о "живом материале" для вычислительных машин воплотилась в жизнь путем переноса конструирования машин с "железа" в "программное обеспечение". Электронные копии, в отличие от железных можно размножать и корректировать бесконечно.
Последний раз редактировалось: Gudleifr (Ср Сен 07, 2022 12:07 am), всего редактировалось 3 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Теперь немножко - не об аппаратном, а о программистском значении "ноликов и единичек" - первая глава из замечательной, но очень математической книги (математику я выкинул).
А.АХО, ДЖ.ХОПКРОФТ, ДЖ.УЛЬМАН
ПОСТРОЕНИЕ И АНАЛИЗ ВЫЧИСЛИТЕЛЬНЫХ АЛГОРИТМОВ
Перевод с английского А.О.Слисенко
под редакцией Ю.В.Матиясевича
ИЗДАТЕЛЬСТВО "МИР". МОСКВА. 1979
ГЛАВА 1. МОДЕЛИ ВЫЧИСЛЕНИЙ
1.1. АЛГОРИТМЫ И ИХ СЛОЖНОСТИ (не нужно)
1.2. МАШИНЫ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ
1.3. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ РАМ-ПРОГРАММ (не нужно)
1.4. МОДЕЛЬ С ХРАНИМОЙ ПРОГРАММОЙ
1.5. МОДИФИКАЦИЯ РАМ
1.6. ПРОСТЕЙШАЯ МОДЕЛЬ ВЫЧИСЛЕНИЙ: МАШИНА ТЬЮРИНГА
1.7. СВЯЗЬ МАШИН ТЬЮРИНГА И РАМ
1.8. ЯЗЫК ВЫСОКОГО УРОВНЯ-УПРОЩЕННЫЙ АЛГОЛ
УПРАЖНЕНИЯ (не нужно)
ЗАМЕЧАНИЯ ПО ЛИТЕРАТУРЕ
<...>
1.2. МАШИНЫ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ
А.АХО, ДЖ.ХОПКРОФТ, ДЖ.УЛЬМАН
ПОСТРОЕНИЕ И АНАЛИЗ ВЫЧИСЛИТЕЛЬНЫХ АЛГОРИТМОВ
Перевод с английского А.О.Слисенко
под редакцией Ю.В.Матиясевича
ИЗДАТЕЛЬСТВО "МИР". МОСКВА. 1979
ГЛАВА 1. МОДЕЛИ ВЫЧИСЛЕНИЙ
1.1. АЛГОРИТМЫ И ИХ СЛОЖНОСТИ (не нужно)
1.2. МАШИНЫ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ
1.3. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ РАМ-ПРОГРАММ (не нужно)
1.4. МОДЕЛЬ С ХРАНИМОЙ ПРОГРАММОЙ
1.5. МОДИФИКАЦИЯ РАМ
1.6. ПРОСТЕЙШАЯ МОДЕЛЬ ВЫЧИСЛЕНИЙ: МАШИНА ТЬЮРИНГА
1.7. СВЯЗЬ МАШИН ТЬЮРИНГА И РАМ
1.8. ЯЗЫК ВЫСОКОГО УРОВНЯ-УПРОЩЕННЫЙ АЛГОЛ
УПРАЖНЕНИЯ (не нужно)
ЗАМЕЧАНИЯ ПО ЛИТЕРАТУРЕ
<...>
1.2. МАШИНЫ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ
- Спойлер:
- МАШИНА С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ (или, иначе, РАВНОДОСТУПНАЯ АДРЕСНАЯ МАШИНА - сокращенно РАМ) моделирует вычислительную машину с одним сумматором, в которой команды программы не могут изменять сами себя.
РАМ состоит из входной ленты, с которой она может только считывать, выходной ленты, на которую она может только записывать, и памяти (рис.1.3). Входная лента представляет собой последовательность клеток, каждая из которых может содержать целое число (возможно, отрицательное). Всякий раз, когда символ считывается с входной ленты, ее читающая головка сдвигается на одну клетку вправо. Выход представляет собой ленту, на которую машина может только записывать; она разбита на клетки, которые вначале все пусты. При выполнении команды записи в той клетке выходной ленты, которую в текущий момент обозревает ее головка, печатается целое число и головка затем сдвигается на одну клетку вправо. Как только выходной символ записан, его уже нельзя изменить.
Рис.1.3. Машина с произвольным доступом к памяти.
Память состоит из последовательности регистров r0, r1, ..., ri, ..., каждый из которых способен хранить произвольное целое число. На число регистров, которые можно использовать, мы не устанавливаем верхней границы. Такая идеализация допустима в случаях, когда
1) размер задачи достаточно мал, чтобы она поместилась в основную память вычислительной машины,
2) целые числа, участвующие в вычислении, достаточно малы, чтобы их можно было помещать в одну ячейку.
Программа для РАМ (или РАМ-программа) не записывается в память. Поэтому мы предполагаем, что программа не изменяет сама себя. Программа является, в сущности, последовательностью (возможно) помеченных команд. Точный тип команд, допустимых в программе, не слишком важен, пока они напоминают те, которые обычно встречаются в реальных вычислительных машинах. Мы предполагаем, что имеются арифметические команды, команды ввода-вывода, косвенная адресация (например, для индексации массивов) и команды разветвления. Все вычисления производятся в первом регистре r0, называемом СУММАТОРОМ, который, как и всякий другой регистр памяти, может хранить произвольное целое число. Пример набора команд для РАМ показан на рис.1.4. Каждая команда состоит из двух частей - КОДА ОПЕРАЦИИ и АДРЕСА.
Рис.1.4. Таблица команд РАМ.
В принципе можно было бы добавить к нашему набору любые другие команды, встречающиеся в реальных вычислительных машинах, такие, как логические или литерные операции, и при этом порядок сложности задач не изменится. Читателю разрешается думать, что набор команд дополнен так, как это его устраивает.
Операнд может быть одного из следующих типов:
1) =i означает само целое число i и называется литералом,
2) i - содержимое регистра i (i должно быть неотрицательным),
3) *i означает косвенную адресацию, т.е. значением операнда служит содержимое регистра j, где j - целое число, находящееся в регистре i; если j<0, машина останавливается.
Эти команды хорошо знакомы всякому, кто программировал на языке ассемблера. Можно определить значение программы P с помощью двух объектов: отображения c из множества неотрицательных целых чисел в множество целых чисел и "счетчика команд", который определяет очередную выполняемую команду. Функция c есть ОТОБРАЖЕНИЕ ПАМЯТИ, а именно c(i) - целое число, содержащееся в регистре i (СОДЕРЖИМОЕ регистра i).
Вначале c(i)=0 для всех i>=0, счетчик команд установлен на первую команду в P, а выходная лента пуста. После выполнения k-й команды из P счетчик команд автоматически переходит на k+1 (т.е. на очередную команду), если k-я команда не была командой вида JUMP, HALT, JGTZ или JZERO.
Чтобы описать действие команды, зададим ЗНАЧЕНИЕ v(a) ОПЕРАНДА а:
v(=i) = i,
v(i) = c(i),
v(*i) = c(c(i)).
Таблица на рис.1.5 определяет действие каждой команды из таблицы на рис.1.4. Команды, действию которых не дано определения (такие, как STORE =i), можно считать эквивалентными команде HALT. Аналогично деление на нуль останавливает машину.
Рис.1.5. Действие команд РАМ. Операнд a есть =i, i или *i.
При выполнении любой из первых восьми команд счетчик команд увеличивается на единицу. Поэтому команды в данной программе выполняются последовательно, до тех пор пока не встретится команда JUMP или HALT либо JGTZ при содержимом сумматора, большем нуля, либо JZERO при содержимом сумматора, равном нулю.
Вообще говоря, РАМ-программа определяет отображение из множества входных лент в множество выходных лент. Так как на некоторых входных лентах программа может не останавливаться, это отображение является частичным (т.е. для некоторых входов оно может быть не определено). Это отображение можно интерпретировать разными способами. Две важные интерпретации - интерпретация в виде функции и интерпретация в виде языка.
Предположим, что программа Р всегда считывает с входной ленты n целых чисел и записывает на выходную ленту не более одного целого числа. Пусть x1, x2, ..., хn - целые числа, находящиеся в n первых клетках входной ленты, и пусть программа Р записывает y в первую клетку выходной ленты, а затем через некоторое время останавливается. Тогда говорят, что P вычисляет функцию f(x1, ..., хn) = у. Легко показать, что РАМ, как и всякая другая разумная модель вычислительной машины, может вычислять в точности ЧАСТИЧНО РЕКУРСИВНЫЕ ФУНКЦИИ. Иными словами, для произвольной частично рекурсивной функции f можно написать РАМ-программу, вычисляющую f, и для произвольной РАМ-программы можно указать эквивалентную ей частично рекурсивную функцию. (По поводу рекурсивных функций см. Дэвис [1958] или Роджерс [1967]).
Другой способ интерпретировать программу для РАМ - это посмотреть на нее с точки зрения допускаемого ею языка. АЛФАВИТ - это конечное множество символов, ЯЗЫК - множество цепочек (слов) алфавита. Символы алфавита можно представить целыми числами 1, 2, ..., k при некотором k. Данная РАМ допускает (воспринимает) язык в следующем смысле. Пусть на входной ленте находится цепочка s = a1a2...an, причем символ a1 расположен в первой клетке, a2 - во второй и т.д., а в (n+1)-й клетке расположен 0 - символ, который будет использоваться в качестве концевого маркера, т.е. маркера конца входной цепочки.
Входная цепочка s ДОПУСКАЕТСЯ РАМ-программой Р, если Р прочитывает все ее символы и концевой маркер, пишет 1 в первой клетке выходной ленты и останавливается.
ЯЗЫКОМ, ДОПУСКАЕМЫМ ПРОГРАММОЙ Р, называется множество всех цепочек (слов), допускаемых ею. Для входных цепочек, не принадлежащих языку, допускаемому программой Р, она может напечатать на выходной ленте символ, отличный от 1, и остановиться, а может даже и не остановиться вообще. Легко показать, что язык допускается некоторой РАМ тогда и только тогда, когда он РЕКУРСИВНО ПЕРЕЧИСЛИМ. Язык допускается РАМ, останавливающейся на всех входах, тогда и только тогда, когда он РЕКУРСИВЕН (о рекурсивных и рекурсивно перечислимых языках см. Хопкрофт, Ульман [1969]).
Рассмотрим две программы для РАМ. Первая определяет функцию, вторая допускает язык.
ПРИМЕР 1.1. Пусть
Программа на Упрощенном Алголе, вычисляющая f{n) путем (n-1)-кратного умножения на n, приведена на рис.1.6 [Описание Упрощенного Алгола см. в разд.1.8.]. Соответствующая программа для РАМ дана на рис.1.7. Переменные r1, r2 и rЗ хранятся в регистрах 1, 2 и 3 соответственно. Мы специально не сделали очевидных улучшений программы, чтобы яснее было видно соответствие между рис.1.6 и 1.7.
Рис.1.6. Программа для n в степени n на Упрощенном Алголе.
Рис.1.7. РАМ-программа для n в степени n.
ПРИМЕР 1.2. Рассмотрим РАМ-программу, которая допускает язык во входном алфавите {1, 2}, состоящий из всех цепочек с одинаковым числом вхождений 1 и 2. Эта программа считывает каждый входной символ в регистр 1, а в регистре 2 оставляет разность d между количеством символов 1 и 2, поступивших до текущего момента. Встретив концевой маркер 0, программа сравнивает d с нулем и в случае совпадения печатает 1 и останавливается. Мы считаем 0, 1 и 2 единственно возможными входными символами.
Основные детали алгоритма приведены в программе на рис.1.8. Эквивалентная программа для РАМ дана на рис.1.9; x хранится в регистре 1, а d - в регистре 2.
Рис.1.8. Распознавание цепочек с одинаковыми числами вхождений 1 и 2.
Рис.1.9. РАМ-программа, соответствующая алгоритму на рис.1.8.
<...>
Последний раз редактировалось: Gudleifr (Чт Фев 04, 2021 1:30 pm), всего редактировалось 3 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
1.4. МОДЕЛЬ С ХРАНИМОЙ ПРОГРАММОЙ
- Спойлер:
- Поскольку РАМ-программа не хранится в памяти РАМ, она не может изменять себя. Сейчас мы рассмотрим другую модель вычислительной машины, называемую МАШИНОЙ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ К ПАМЯТИ И ХРАНИМОЙ ПРОГРАММОЙ (или, иначе, РАВНОДОСТУПНОЙ АДРЕСНОЙ МАШИНОЙ С ХРАНИМОЙ ПРОГРАММОЙ - сокращенно РАСП), которая отличается от РАМ лишь тем, что ее программа находится в памяти и может изменять себя.
Набор команд для РАСП совпадает с соответствующим набором для РАМ во всем, кроме косвенной адресации, которая исключена, ибо она не нужна. Мы увидим, что РАСП может моделировать косвенную адресацию путем изменения команд в процессе выполнения программы.
Общая структура РАСП также подобна структуре РАМ, но только предполагается, что РАСП-программа находится в регистрах памяти. Каждая РАСП-команда занимает два последовательных регистра памяти. Первый регистр содержит код операции, второй - адрес. Если адрес имеет вид =i, то первый регистр будет содержать (в закодированном виде) указание на то, что операнд является литералом, а второй регистр будет содержать i. Для кодирования команд берутся целые числа. На рис.1.12 представлено одно возможное кодирование. Например, команда LOAD =32 должна храниться в виде числа 2 в одном регистре и 32 в следующем регистре.
Рис. 1.12. Коды для команд РАСП.
Так же как для РАМ, состояние РАСП можно представить с помощью
1) отображения памяти c, где c(i), i>=0,- содержимое i-ro регистра,
2) счетчика команд, указывающего первый из двух последовательных регистров памяти, из которых надлежит взять текущую команду.
Вначале счетчик команд устанавливается на некоторый выделенный регистр. Обычно исходное содержимое регистров памяти не состоит из одних нулей, так как в память уже введена программа. Однако мы требуем, чтобы вначале все регистры, кроме конечного числа, содержали 0, и чтобы сумматор также содержал 0. После выполнения каждой команды счетчик команд всегда увеличивается на 2, кроме случаев JUMP i, JGTZ i (при положительном сумматоре) и JZERO i (при нулевом сумматоре), когда он устанавливается на i. Действие каждой команды в точности то же, что и у соответствующей команды РАМ.
<...>
Покажем, как моделировать РАМ-программу некоторой РАСП-программой. Регистр 1 в РАСП будет служить для временного запоминания содержимого сумматора РАМ. Отправляясь от Р, мы будем строить РАСП-программу Ps, которая будет занимать следующие r-1 регистров РАСП. Постоянная r определяется РАМ-программой Р. Содержимое регистра РАМ с номером i, i>=1, будет храниться в регистре РАСП с номером r+i, так что все адреса в РАСП-программе будут на r больше соответствующих адресов в РАМ-программе.
Каждая РАМ-команда в Р, не содержащая косвенной адресации, прямо кодируется в такую же РАСП-команду (с надлежащим увеличением адресов). Каждая РАМ-команда в Р, содержащая косвенную адресацию, переводится в последовательность из шести РАСП-команд, которые моделируют косвенную адресацию путем изменения команд.
Проиллюстрируем моделирование косвенной адресации на примере. Для моделирования РАМ-команды SUB *i, где i - положительное целое, построим последовательность РАСП-команд, которые
1) временно запоминают содержимое сумматора в регистре 1,
2) вызывают содержимое регистра r+i в сумматор (РАСП-регистр с номером r+i соответствует РАМ-регистру с номером i),
3) прибавляют r к сумматору,
4) запоминают число, вычисленное на шаге 3 в адресном поле команды SUB,
5) восстанавливают сумматор из временного регистра 1,
6) используют команду SUB, созданную на шаге 4, для выполнения вычитания.
Например, применяя кодирование команд РАСП, приведенное на рис.1.12, и предполагая, что последовательность РАСП-команд начинается в регистре 100, можно смоделировать SUB *i последовательностью, показанной на рис.1.13. Сдвиг r можно будет определить, когда станет известно количество РАСП-команд в программе Рs.
Рис.1.13. Моделирование SUB *i на РАСП.
Мы видим, что для моделирования каждой РАМ-команды требуется самое большее шесть РАСП-команд...
<...>
РАМ-программа, которую мы построим для моделирования данной РАСП, будет использовать косвенную адресацию для декодирования и моделирования РАСП-команд, хранящихся в памяти РАМ. Некоторые регистры РАМ будут иметь специальное назначение:
- регистр 1 - для косвенной адресации,
- регистр 2 - для счетчика команд РАСП,
- регистр 3 - для хранения содержимого сумматора РАСП.
РАСП-регистр с номером i будет храниться в РАМ-регистре с номером i+3 при i>=0.
Искомая РАМ начинает работу с РАСП-программы конечной длины, расположенной в ее памяти с регистра 4 и далее. Регистр 2 (счетчик команд) содержит число 4; регистры 1 и 3 - число 0. РАМ-программа состоит из цикла моделирования, начинающегося со считывания РАСП-команды (с помощью РАМ-команды LOAD *2), декодирования ее и разветвления на один из 18 наборов команд, каждый из которых предназначен для обработки одного типа РАСП-команды. На неправильном коде операции РАМ, как и РАСП, остановится.
Операции декодирования и разветвления строятся естественным образом; моделью может служить пример 1.2 (хотя символ, декодируемый там, был считан со входа, а здесь он считывается из памяти).
В качестве примера приведем те команды РАМ, которые моделируют РАСП-команду с кодом 6, т.е. SUB i. Эта программа, изображенная на рис.1.15, вызывается, когда c(с(2))=6, т.е. когда счетчик команд указывает на регистр, содержащий число 6 - код команды SUB.
Рис.1.15. Моделирование SUB i на РАМ.
Дальнейшие детали построения нужной РАМ-программы мы опускаем...
<...>
Последний раз редактировалось: Gudleifr (Чт Фев 04, 2021 1:31 pm), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
1.5. МОДИФИКАЦИЯ РАМ
- Спойлер:
- РАМ и РАСП - более сложные модели вычислений, чем это часто бывает необходимо. Поэтому мы введем ряд других моделей, которые наследуют одни черты РАМ и игнорируют другие.
<...>
1. НЕВЕТВЯЩИЕСЯ ПРОГРАММЫ
Первая наша модель - неветвящаяся программа. Для многих задач разумно ограничиться рассмотрением класса РАМ-программ, в которых команды разветвления используются только для того, чтобы повторить последовательность команд, причем число повторений пропорционально размеру входа n. В этом случае можно "развернуть" программу для каждого размера n, копируя повторяющиеся команды надлежащее число раз. В результате получается последовательность неветвящихся программ (т.е. программ без циклов), вообще говоря, возрастающей длины - по одной программе для каждого значения n.
ПРИМЕР 1.3. Рассмотрим умножение двух целочисленных матриц размера n*n. Разумно ожидать, что в РАМ-программе число выполнений цикла не будет зависеть от фактических значений элементов матрицы. Поэтому можно в качестве полезного упрощения считать, что допускаются только такие циклы, у которых проверка конца зависит лишь от n, т.е. от размера задачи. Например, обычный алгоритм умножения матриц содержит циклы, которые следует выполнить точно n раз, при этом от команд разветвления требуется только сравнение параметра цикла с n.
Развертывание циклов в программе позволяет обходиться без команд разветвления. Оправданием служит то, что во многих задачах не более чем постоянная доля сложности работы РАМ-программы приходится на команды, управляющие циклом. Подобным же образом часто можно допускать, что входные операторы образуют лишь постоянную долю сложности работы программы, и мы устраняем их, допуская, что перед началом выполнения программы в памяти находится конечное множество входов, требуемых при данном n. Действие косвенной адресации можно определить для фиксированного n, если предполагать, что регистры, используемые для нее, содержат величины, зависящие только от n и не зависящие от значений входных переменных. Поэтому мы будем считать, что наши неветвящиеся программы не имеют косвенных адресаций.
Кроме того, поскольку каждая неветвящаяся программа может обращаться только к конечному числу регистров памяти, удобно присвоить этим регистрам имена. Потому при ссылке на регистры мы будем употреблять СИМВОЛИЧЕСКИЕ АДРЕСА (символы или цепочки букв), а не целые числа.
Устранив потребность в командах READ, JUMP, JGTZ и JZERO, мы остаемся с командами LOAD, STORE, WRITE, HALT и арифметическими операциями из системы команд РАМ. Нам не нужна команда HALT, ибо на остановку указывает конец программы. Можно обойтись и без WRITE, назначив в качестве выходных переменных определенные символические адреса; выходом программы будет значение, принимаемое этими переменными к окончанию работы программы.
Наконец, можно "встроить" LOAD и STORE в арифметические операции, заменяя последовательности вида
LOAD a
ADD b
STORE c
на c <- a+b. Весь набор команд неветвящейся программы выглядит так:
x <- y+z
х <- y-z
x <- y*z
x <- y/z
x <- i
где x, y и z - символические адреса (или переменные), a i - постоянная. Легко видеть, что любую последовательн
ость команд LOAD, STORE и арифметических операций в сумматоре можно заменить последовательностью, составленной из пяти выписанных выше команд.
С неветвящейся программой связаны два выделенных набора переменных - входы и выходы. Функцией, вычисляемой данной неветвящейся программой, называется множество значений выходных переменных (в определенном порядке), выраженных через значения ее входных переменных.
ПРИМЕР 1.4. Рассмотрим вычисление полинома p(x) = an*x^n + a(n-1)*х^(n-1) + ... + а1*х + a0.
Входными переменными служат коэффициенты a0, a1, ..., an и неопределенная переменная x Выходной переменной будет p. По ПРАВИЛУ ГОРНЕРА p(х) вычисляется так:
1) a1x+a0 для n=1,
2) (a2x+a1)x+a0 для n=2,
3) ((a3x+а2)x+a1)x+a0 для n=3.
На рис.1.16 приведены неветвящиеся программы, соответствующие этим выражениям. Правило Горнера для произвольного n теперь должно быть понятно. Для каждого n у нас есть неветвящаяся программа из 2n шагов, вычисляющая полином n-й степени.
Рис.1.16. Неветвящиеся программы, соответствующие правилу Горнера.
<...>
2. БИТОВЫЕ ВЫЧИСЛЕНИЯ
<...>
Эта модель, называемая БИТОВЫМ ВЫЧИСЛЕНИЕМ, по существу, является той же неветвящейся программой, но только в ней
1) все переменные принимают значения 0 или 1, т.е. это биты,
2) используются логические операции вместо арифметических [Таким образом, набор команд для наших РАМ должен состоять из этих операций].
<...>
Другое применение битовой модели - логические сети (схемы). Неветвящиеся программы с двоичными входами и операциями взаимно однозначно соответствуют комбинационным логическим сетям, вычисляющим набор булевых функций. Число шагов такой программы - это число логических элементов в сети.
ПРИМЕР 1.5. На рис.1.17,а приведена программа для сложения двух двуразрядных чисел [a1a0] и [b1b0]. Выходные переменные - это такие числа c2, c1 и c0, что [a1a0]+[b1b0]=[c2c1c0]. Неветвящаяся программа на рис. 1.17, а вычисляет
Рис. 1.17, а - битовая программа для сложения; б - эквивалентная логическая сеть.
c0 = a0 xor b0,
c1 = ((a0 and b0) xor a1) xor b1,
c2 = ((a0 and b0) and (a1 or b1)) or (a1 and b1).
На рис.1.17,б изображена соответствующая логическая сеть.
<...>
3. ОПЕРАЦИИ С ДВОИЧНЫМИ ВЕКТОРАМИ
Можно было бы не ограничивать значения переменных символами 0 и 1, а разрешить переменным принимать в качестве значения любой вектор из 0 и 1. Фактически двоичные векторы фиксированной длины очевидным образом соответствуют целым числам, так что здесь не допускается ничего такого, что не допускалось бы в РАМ, т.е., когда это удобно, просто разрешаются регистры неограниченного размера.
Однако, как мы увидим, в тех немногих алгоритмах, где применяется модель с двоичными векторами, длина векторов будет значительно больше числа битов, требуемых для представления размера задачи. Величина большинства целых чисел, фигурирующих в таком алгоритме, будет того же порядка, что и размер задачи. Например, решая задачу выбора пути в графе со 100 узлами можно было бы для представления наличия или отсутствия пути из данного узла v в каждый из узлов использовать двоичные векторы длины 100, а именно i-ю позицию в векторе для узла v занимает 1 тогда и только тогда, когда существует путь из v в vi. В этой же задаче можно также использовать целые числа для счета и индексации, например, и они, вероятно, были бы размера числа 100. Таким образом, для целых чисел требовалось бы 7 битов, тогда как для векторов - 100 битов.
Хотя это сравнение и бросает некоторую тень на вычисления о двоичными векторами, большинство вычислительных машин выполняют логические операции на двоичных векторах, составляющих полное машинное слово, за одну команду. Поэтому двоичные векторы длины 100 можно было бы обрабатывать за три или четыре шага (вместо одного для чисел).
<...>
4. ДЕРЕВЬЯ РЕШЕНИЙ
Мы рассмотрели три модификации РАМ, игнорирующие команды разветвления и учитывающие только те шаги программы, которые включают арифметический счет. В некоторых задачах удобно в качестве основной меры сложности брать число выполняемых команд разветвления В случае сортировки, например, выходы совпадают со входами с точностью до порядка. Поэтому разумно рассматривать модель, в которой все шаги дают разветвления, возникающие в результате сравнения двух величин.
Обычно программу, состоящую из разветвлений, представляют в виде двоичного дерева, называемого ДЕРЕВОМ РЕШЕНИЙ. Каждый внутренний узел представляет один из шагов решения. Тест, представленный корнем, выполняется первым, и затем "управление" передается одному из его сыновей в зависимости от исхода теста. В общем случае управление переходит от узла к одному из его сыновей (причем выбор в каждом случае зависит от исхода теста в этом узле), до тех пор пока не будет достигнут лист. Нужный выход находится на достигнутом листе.
Рис.1.18. Дерево решений.
ПРИМЕР 1.6. На рис.1.18 изображено дерево решений для программы, сортирующей три числа a, b и c. Тесты указаны заключенными в овал сравнениями в узлах; управление переходит влево, если ответ на тест - "да", и вправо, если - "нет".
<...>
Последний раз редактировалось: Gudleifr (Чт Фев 04, 2021 1:33 pm), всего редактировалось 3 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
1.6. ПРОСТЕЙШАЯ МОДЕЛЬ ВЫЧИСЛЕНИЙ: МАШИНА ТЬЮРИНГА
- Спойлер:
- <...>
МНОГОЛЕНТОЧНАЯ МАШИНА Тьюринга (МТ) изображена на рис.1.19. Она состоит из нескольких, скажем k, ЛЕНТ, бесконечно простирающихся вправо. Каждая лента разбита на КЛЕТКИ, каждая из которых содержит один из конечного числа СИМВОЛОВ на ленте. Одна клетка на каждой ленте обозревается ГОЛОВКОЙ этой ленты; головка может считывать с ленты и записывать на нее. Работа машины Тьюринга определяется простой программой, называемой УПРАВЛЯЮЩИМ УСТРОЙСТВОМ. Оно всегда находится в одном из конечного числа СОСТОЯНИЙ, которое можно рассматривать как номер текущей команды в программе.
Рис.1.19. Многоленточная машина Тьюринга.
Один шаг вычисления на машине Тьюринга состоит в следующем. В соответствии с текущим состоянием управляющего устройства и символами на лентах, обозреваемыми (т.е. находящимися под) каждой из головок, машина Тьюринга может выполнить некоторые или все из следующих операций:
1) изменить состояние управляющего устройства,
2) напечатать новые символы на лентах вместо старых в каких-нибудь или во всех клетках под головками,
3) сдвинуть какие-нибудь или все головки независимо друг от друга на одну клетку влево (L) или вправо (R) либо оставить на месте (S).
Формально k-ленточная машина Тьюринга задается семеркой
(Q, T, I, delta, b, q0, qf),
где
1) Q - множество состояний,
2) T - множество символов на лентах,
3) I - множество входных символов, I содержится в T,
4) b - пустой символ, b принадлежит Т-I,
5) q0 - начальное состояние,
6) qf - заключительное (или допускающее) состояние,
7) delta - функция переходов, она отображает некоторое подмножество множества Q*T^k в Q*(T*{L, R, S})^k, т.е. по произвольному набору из состояния и k символов на лентах она выдает новое состояние и k пар, каждая из которых состоит из нового символа на ленте и направления сдвига головки.
Пусть delta(ql, a1, a2, ..., ak) = (q', (a'1, d1), (a'2, d2), ..., (a'k, dk)) и машина Тьюринга находится в состоянии q, а ее головка на i-й ленте обозревает символ ai, 1<=i<=k. Тогда за один шаг эта машина Тьюринга переходит в состояние q', заменяет ai на а'1i и сдвигает головку на i-й ленте в направлении (или в соответствии с) di.
Машину Тьюринга можно приспособить для распознавания языка. Символы на лентах такой машины включают алфавит рассматриваемого языка (его буквы играют роль ВХОДНЫХ СИМВОЛОВ), пустой символ, обозначаемый b, и, возможно, другие символы. Вначале на первой ленте записано слово из входных символов по одному на клетку, начиная с самой левой. Все клетки справа от клеток, содержащих входное слово, пусты. Все остальные ленты целиком пусты. Слово из входных символов ДОПУСКАЕТСЯ (ВОСПРИНИМАЕТСЯ) тогда и только тогда, когда машина Тьюринга, начав работу в выделенном начальном состоянии (головки при этом находились на левых концах своих лент), сделает последовательность шагов, которые в конце концов приведут ее в допускающее состояние. ЯЗЫКОМ, ДОПУСКАЕМЫМ данной машиной Тьюринга, называется множество всех слов из входных символов, допускаемых в описанном только что смысле.
Рис. 1.20. Работа машины Тьюринга над цепочкой 01110.
ПРИМЕР 1.8. Двухленточная машина Тьюринга на рис.1.20 распознает палиндромы [Палиндромом называется слово, совпадающее с самим собой при чтении с конца, например 0100010] в алфавите {0, 1} следующим образом.
1) Первая клетка на ленте 2 отмечается специальным знаком X, и вход копируется с ленты 1, где он записан вначале (рис.1.20, а), на ленту 2 (рис.1.20, б).
2) Затем головка на ленте 2 сдвигается к X (рис.1.20, в).
3) Повторяется такая процедура: головка на ленте 2 сдвигается вправо на одну клетку, а на ленте 1 - влево на одну клетку и соответствующие символы сравниваются. Если все символы совпадают, то вход является палиндромом и машина Тьюринга доходит до допускающего состояния ць. В противном случае в некоторый момент очередной шаг машины Тьюринга будет не определен, а она остановится, не допустив входного слова.
Функция переходов соответствующей машины Тьюринга приведена на рис.1.21.
Рис.1.21. Функция переходов машины Тьюринга распознающей палиндромы.
Работу машины Тьюринга формально можно описать с помощью "мгновенных описаний". МГНОВЕННЫМ ОПИСАНИЕМ (МО) k-ленточной машины Тьюринга М называется набор (аlpha1, аlpha2, ..., alpha k), где alpha i для каждого i представляет собой слово вида xqy, причем xy - слово на i-Й ленте машины М (пустые символы, стоящие справа от его правого конца, опускаются), a q - текущее состояние машины. Головка на i-й ленте обозревает символ, стоящий справа от q.
Если мгновенное описание D1 переходит в мгновенное описание D2 за один шаг машины Тьюринга М, то пишут D1 |-M D2(знак |- читается "переходит в"). Если D1 |-M D2 |-M ... |-M Dn для некоторого n>=2, то пишут D1 |-M+ Dn. Если либо D=D', либо D |-M+ D', то пишут D |-M* D'.
Данная k-ленточная машина Тьюринга М = (Q, Т, I, delta, b, q0, qf) ДОПУСКАЕТ слово a1a2 ... an, где ai - элементы из I, если (q0a1a2 ... an, q0, q0, ..., q0) |-M* (аlpha1, аlpha2, ..., alpha k) для некоторых alpha i содержащих qf.
Пример 1.9. На рис.1.22 приведена последовательность мгновенных описаний машины Тьюринга, изображенной на рис.1.21, которой подано на вход слово 010. Так как q5 заключительное состояние, эта машина Тьюринга допускает 010.
Рис.1.22. Последовательность МО машины Тьюринга.
В дополнение к естественной интерпретации машины Тьюринга как устройства, допускающего какой-то язык, ее можно рассматривать как устройство, которое вычисляет некоторую функцию f. Аргументы этой функции кодируются на входной ленте в виде слова x со специальным маркером #, отделяющим их друг от друга. Если машина Тьюринга останавливается, имея на ленте, выделенной в качестве выходной, целое число y (значение функции), то полагают f(x)=y. Таким образом, процесс вычисления мало отличается от процесса допускания языка.
<...>
1.7. СВЯЗЬ МАШИН ТЬЮРИНГА И РАМ
<...>
Рассмотрим связь между РАМ и МТ. Очевидно, что РАМ может моделировать работу k-ленточной МТ, помещая по одной клетке МТ в регистр. В частности, i-ю клетку -й ленты можно хранить в регистре ki+j+c, где с - постоянная, назначение которой - дать РАМ некоторое "оперативное пространство". В него включаются k регистров для запоминания положений k головок МТ. РАМ может считывать клетки МТ, используя косвенную адресацию с помощью регистров, содержащих положения головок на лентах.
<...>
Обратное утверждение...
<...>
Рис. 1.23. Представление РАМ на МТ.
Представим все не содержащие нуля регистры рассматриваемой РАМ, как показано на рис.1.23. На ленте помещена последовательность пар чисел (ij, сj), записанных в двоичной форме без нулей в начале слова и разделенных маркерами. Для каждого j число cj есть содержимое регистра ij РАМ. Содержимое сумматора РАМ хранится в двоичном коде на второй ленте, а третья играет роль рабочей памяти. Еще две ленты служат для записи входа и выхода РАМ. Каждый шаг программы РАМ представлен конечным числом состояний МТ. Мы не будем описывать моделирование всех команд РАМ, а рассмотрим только команды ADD *20 и STORE 30, которые разъясняют общую идею. Для ADD *20 можно устроить МТ так, чтобы она работала следующим образом.
1. На ленте 1 разыскивается место, соответствующее регистру 20 в РАМ, т.е. последовательность ##10100#. Если оно находится, на ленту 3 помещается следующее за ним число, которое будет содержимым регистра 20. Если такое место не нашлось, машина останавливается - содержимое регистра 20 равно 0, и поэтому косвенную адресацию произвести нельзя.
2. На ленте 1 разыскивается место, где хранится регистр РАМ, номер которого записан на ленте 3. Если оно находится, то содержимое этого регистра записывается на ленту 3. Если нет, туда помещается 0.
3. Число, записанное на ленту 3 на шаге 2, прибавляется к содержимому сумматора, которое хранится на ленте 2.
Для моделирования STORE 30 можно так построить МТ, чтобы она работала следующим образом.
1. Разыскивается место расположения регистра 30 в РАМ, т.е. ##11110#.
2. Если оно находится, то на ленту 3 записывается все, что расположено справа от ##11110#, кроме числа, стоящего непосредственно справа (т.е. старого содержимого регистра 30). Затем содержимое сумматора (на ленте 2) записывается непосредственно справа от ##11110#, а за ним помещается слово, скопированное на ленту 3.
3. Если на ленте 1 не нашлось места, соответствующего регистру 30, то, дойдя до самого левого пустого символа, машина печатает 11110#, затем содержимое сумматора и, наконец, ##.
Подумав немного, нетрудно понять, что можно указать МТ, которая правильно смоделирует РАМ.
<...>
... основное время уходит на поиск на ленте.
<...>
Если в РАМ-программе участвуют команды умножения и деления, то можно написать подпрограммы для МТ, выполняющие эти операции с помощью сложений и вычитаний.
<...>
Последний раз редактировалось: Gudleifr (Чт Фев 04, 2021 1:34 pm), всего редактировалось 2 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
1.8. ЯЗЫК ВЫСОКОГО УРОВНЯ - УПРОЩЕННЫЙ АЛГОЛ
ЗАМЕЧАНИЯ ПО ЛИТЕРАТУРЕ
РАМ и РАСП получили формальную трактовку у Шепердсона, Стерджиса [1963], Элгота, Робинсона [1964] и Хартманиса [1971]. В изложении большей части результатов о РАМ и РАСП в этой главе мы следуем работе Кука, Рекхау [1973].
Идея машины Тьюринга принадлежит Тьюрингу [1936]. Более подробное изложение этого понятия можно найти у Минского [1967] и Хопкрофта, Ульмана [1969]
<...>
***
КАКИЕ ЖЕ МОЖНО СДЕЛАТЬ ВЫВОДЫ ИЗ ЭТИХ ОГРЫЗКОВ?
1. По числу пропусков можно судить, что математики в этой книге (да и в программировании) очень много. Правда, в этой главе она достаточно элементарна - немножко логики и теории множеств для оценки быстродействия программ. Я ее выкинул только потому, что она мешала "считать ячейки" в моделях.
2. Можно видеть, что все вычислительные модели с точки зрения программирования эквивалентны и вся их логика сводится к работе с "ячейками". Причем это работа в точности такая, как описывали КИБЕРНЕТИКИ. Разница только в том, что по мере роста удобства написания программ множатся и разночтения. Слишком о многом надо договариваться, изобретая языки высокого уровня.
3. Некоторые модели удобнее реализовывать на специально организованных "ячейках". Особенно это касается разницы между РАМ (гарвардской архитектурой) и РАСП (архитектурой фон Неймана). Но иногда в истории ЭВМ появлялись даже системы "ячеек", ориентированные на языки высокого уровня.
4. Можно видеть, что в описанных моделях полностью отсутствуют "механические части ГОЛЕМОВ". Где глаза, уши и прочее мультимедиа? Ответ - в наборах специальных ячеек. Контроллеры устройств, порты ввода-вывода, видеопамять, диски памяти - это все особые пространства "ячеек" (как "лента" и "регистры").
- Спойлер:
- <...>
... мы, вообще говоря, не хотим описывать алгоритмы в терминах столь простых машин, да в этом и нет необходимости. Для того чтобы нагляднее описывать алгоритмы, мы введем некоторый язык высокого уровня, называемый Упрощенным Алголом.
Программу на Упрощенном Алголе можно перевести непосредственно в программу для РАМ или РАСП. Фактически это была бы в точности роль транслятора с Упрощенного Алгола. Нас, однако, не будут интересовать детали перевода Упрощенного Алгола в конкретные программы для РАМ или РАСП. Для наших целей нужно рассматривать лишь время и память, необходимые для выполнения команд, соответствующих операторам на Упрощенном Алголе.
Упрощенный Алгол отличается от всех принятых языков программирования тем, что он разрешает использовать любой тип математических предписаний, если только их значения понятны, а перевод в команды РАМ или РАСП очевиден. Этот язык не имеет также фиксированного набора типов данных. Переменные могут представлять целые числа, слова и массивы. Дополнительные типы данных - множества, графы, списки, очереди и т.п. - можно вводить по мере необходимости. Формальные описания типов данных по возможности избегаются. Тип данных какой-то переменной и ее область действия [Область действия переменной - это окружение, в котором она осмыслена. Например, областью действия индекса суммирования является выражение, стоящее под знаком суммы, и вне его он не имеет значения] должны быть ясны либо по ее названию, либо по контексту.
В Упрощенном Алголе применяются традиционные конструкции математики и языков программирования, такие, как выражения, условия, операторы и процедуры. Ниже приведены неформальные описания некоторых из этих конструкций. Никаких попыток дать точное определение не делается, ибо это выходит далеко за рамки тематики данной книги. Заметим, что легко написать программы, смысл которых зависит от деталей, не рассмотренных здесь, но лучше избегать этого, что мы и проделали (мы надеемся) в нашей книге.
ПРОГРАММА на Упрощенном Алголе - это оператор одного из следующих типов:
1) переменная <- выражение
2) if условие then оператор else оператор [Часть "else оператор" не обязательна. Но такой вариант приводит к обычной двусмысленности типа "непривязанное else". Мы выбираем традиционный путь и предполагаем, что else спаривается с ближайшим еще не спаренным then]
За) while условие do оператор
3б) repeat оператор until условие
4) for переменная <- исходное значение step размер шага [Часть "step размер шага" не обязательна, если размер шага равен 1] until заключительное значение do оператор
5) метка: оператор
6) goto метка
7) begin
оператор;
оператор;
...
оператор;
оператор
end
8а) procedure имя (список параметров): оператор
8б) return выражение
8в) имя процедуры (аргументы)
9а) read переменная
9б) write выражение
10) comment комментарий
11) любой другой произвольный оператор
Дадим обзор каждого из этих операторов.
1. Оператор присваивания
переменная <- выражение
означает, что надо вычислить выражение справа от стрелки и его значение присвоить переменной, стоящей слева от стрелки.
<...>
Если значение выражения не принадлежит к данным основного типа, таким как целые числа, то в некоторых случаях можно уменьшить время с помощью указателей. Например, присваивание А <- В, где А и В - матрицы размера n*n ... если В больше нигде не встречается, то путем простого переименования массива можно сделать это время фиксированным, не зависящим от n.
2. В if-операторе
if условие then оператор else оператор
условием, следующим за if, может быть любое выражение, принимающее значение true или false. Если это условие имеет значение true, то надо выполнять оператор, стоящий за then. В противном случае надо выполнять оператор, стоящий за else (если else есть).
<...>
3. Назначение while-оператора
while условие do оператор
и repeat-оператора
repeat оператор until условие
состоит в организации цикла. В while-операторе вычисляется значение условия, идущего после while. Если оно истинно (принимает значение true), то выполняется оператор, стоящий после do. Этот процесс повторяется до тех пор, пока условие не станет ложным. Если вначале это условие было истинным, то выполнение оператора должно в конце концов привести это условие к значению false, чтобы закончилось выполнение while-оператора.
<...>
repeat-оператор трактуется аналогично, но только теперь оператор, стоящий за repeat, выполняется перед проверкой условия.
4. В for-операторе
for переменная <- исходное значение step размер шага until заключительное значение do оператор
"исходное значение", "размер шага" и "заключительное значение" являются выражениями. В случае когда размер шага положителен, "переменная" (называемая индексом) полагается равной значению выражения для исходного значения. Если оно больше заключительного значения, то выполнение оператора заканчивается. В противном случае выполняется оператор, стоящий после do, значение переменной увеличивается на величину шага и сравнивается с заключительным значением. Процесс повторяется до тех пор, пока значение переменной не превзойдет заключительное значение. Случай, когда размер шага отрицателен, трактуется аналогично с той лишь разницей, что окончание происходит, когда значение переменной становится меньше заключительного значения.
<...>
В приведенном описании совершенно игнорируется такая деталь, как момент вычисления выражений для исходного значения, размера шага и заключительного значения. Может случиться, что выполнение оператора, стоящего после do, изменяет значение выражения для размера шага. В таком случае вычисление значения выражения для размера шага каждый раз, когда переменная возрастает, может привести к результату, отличному от того, который получился бы, если бы размер шага вычислялся раз и навсегда. Точно так же вычисление размера шага может воздействовать на заключительное значение, а изменение размера шага может повлиять на тест на окончание. Мы обходим эти трудности, отказываясь от программ, в которых подобные явления сделали бы их смысл неясным.
5. Любой оператор можно переделать в помеченный оператор, написав перед ним метку, за которой стоит двоеточие. Главное назначение метки - создание цели для goto-оператора.
<...>
6. goto-оператор
goto метка
указывает, что дальше выполняется оператор с данной меткой. Этот оператор не может стоять внутри блока типа 7, если сам goto-оператор не находится в том же блоке.
<...>
goto-операторы следует применять изредка, ибо, вообще говоря, они затрудняют понимание программы. Основное применение goto-оператора - это выход из while-операторов.
7. Последовательность операторов, отделенных друг от друга точками с запятыми и заключенных между выделенными словами begin и end, образует оператор, который называется блоком. Так как блок является оператором, его можно применять всюду, где предусмотрено применение оператора. Обычно программа будет блоком.
<...>
8. ПРОЦЕДУРЫ. В Упрощенном Алголе процедуры можно определять и впоследствии вызывать. Процедуры определяются оператором определения процедур
procedure имя (список параметров): оператор
Список параметров - это последовательность фиктивных переменных, называемых формальными параметрами. Например, следующий оператор определяет процедуру-функцию MIN:
procedure MIN (x, y):
if x > y then return y else return x
Аргументы x и y являются формальными параметрами.
Процедуры используются одним из двух способов. Один способ - в качестве функции. После того как процедура-функция описана, к ней можно обратиться в некотором выражении, вызывая ее имя с нужными аргументами. В этом случае последним оператором, выполняемым в данной процедуре, должен быть return-оператор (8б). Этот оператор приводит к вычислению значения выражения, следующего за выделенным словом return, и окончанию выполнения процедуры. Значением функции будет значение этого выражения. Например,
A <- MIN(2+3, 7)
приводит к тому, что А получает значение 5. Выражения 2+3 и 7 называются фактическими параметрами этого обращения к данной процедуре.
Второй способ применения процедуры состоит в вызове ее с помощью оператора вызова процедуры (8в). Этот оператор есть, по существу, имя процедуры, за которым идет список фактических параметров. Оператор вызова процедуры может изменить (и обычно изменяет) данные (значения переменных, массивов и т.д.) вызываемой программы. В определении вызываемой таким способом процедуры return-оператор не нужен. Завершение выполнения последнего оператора процедуры завершает и выполнение оператора ее вызова. Например, следующий оператор определяет процедуру ВЗАИМОЗАМЕНА:
procedure ВЗАИМОЗАМЕНА (x, y):
begin
t <- x;
x <- y;
y <-t
end
Для обращения к этой процедуре можно было оы написать оператор вызова процедуры, такой, как
ВЗАИМОЗАМЕНА(A[i], A[j])
Обмен информацией между процедурами можно осуществлять двумя способами. Во-первых, с помощью глобальных переменных. Мы предполагаем, что глобальные переменные неявно описаны в некоторой универсальной области. В этой области есть подобласть, в которой определены процедуры.
Во-вторых, связь между процедурами можно осуществлять с помощью параметров. В Алголе 60 используется вызов по значению и вызов по наименованию. При ВЫЗОВЕ ПО ЗНАЧЕНИЮ формальные параметры процедуры трактуются как локальные переменные, которым в качестве начальных значений придаются значения фактических параметров. При ВЫЗОВЕ ПО НАИМЕНОВАНИЮ формальные параметры служат указателями места в программе, куда подставляются фактические параметры вместо каждого вхождения соответствующих формальных параметров. Для простоты мы отходим от Алгола 60 и используем вызов по ссылке. При вызове по ссылке параметры обрабатываются с помощью указателей на фактические параметры. Если фактический параметр является выражением (возможно, постоянной), то соответствующий формальный параметр трактуется как локальная переменная, которой в качестве начального значения присвоено значение этого выражения.
<...>
9. Смысл read-оператора и write-оператора очевиден.
<...>
10. comment-оператор позволяет вставлять замечания, облегчающие понимание программы...
<...>
11. В дополнение к операторам общепринятых языков программирования мы включили под именем "произвольные" любые операторы, благодаря которым алгоритм можно понять легче, чем эквивалентную последовательность стандартных операторов языка программирования. Такие операторы используются в ситуациях, когда детали реализации либо несущественны, либо очевидны или когда желательно дать описание на языке еще более высокого уровня. Приведем примеры обычно используемых "произвольных" операторов:
а) пусть а будет наименьшим элементом множества S
б) пометить элемент a как "старый" [Под этим мы подразумеваем, что имеется массив СОСТОЯНИЕ, такой, что СОСТОЯНИЕ[a] есть 1, если a - "старый" элемент, и 0, если a - "новый"]
в) without lossof generality (wig) считаем, что... otherwise ... in
оператор
Например,
wig считаем a<=b otherwise переставить с и d in оператор
означает, что если a<=b, то стоящий дальше оператор следует выполнять так, как он записан, а если a>b, то выполнять этот оператор, предварительно поменяв в нем c и d местами.
Реализация таких операторов в терминах общепринятых языков программирования или команд РАМ не вызывает затруднений, но она очень утомительна.
<...>
Дальнейшие примеры операторов такого рода не раз встретятся нам в этой книге в программах на Упрощенном Алголе.
Поскольку переменные обычно не будут описываться, условимся об областях их действия. В одной программе или процедуре мы не будем употреблять одинаковые имена для двух разных переменных. Поэтому в качестве области действия переменной обычно можно брать всю процедуру или программу, в которую она входит [Это утверждение имеет несколько несущественных исключений. Например, в процедуру могут входить два невложенных for-оператора, оба с индексом i. Строго говоря, область действия индекса for-оператора - это сам for-оператор, и потому эти индексы i являются разными переменными].
Одно важное исключение возникает в случае, когда несколько процедур действуют на общей базе данных. В этом случае предполагается, что переменные общей базы данных глобальны, а переменные, используемые процедурой для временного запоминания в ходе работы с базой данных, локальны для этой процедуры. Всякий раз, когда может возникнуть недоразумение по поводу области действия переменной, будет даваться явное описание.
ЗАМЕЧАНИЯ ПО ЛИТЕРАТУРЕ
РАМ и РАСП получили формальную трактовку у Шепердсона, Стерджиса [1963], Элгота, Робинсона [1964] и Хартманиса [1971]. В изложении большей части результатов о РАМ и РАСП в этой главе мы следуем работе Кука, Рекхау [1973].
Идея машины Тьюринга принадлежит Тьюрингу [1936]. Более подробное изложение этого понятия можно найти у Минского [1967] и Хопкрофта, Ульмана [1969]
<...>
***
КАКИЕ ЖЕ МОЖНО СДЕЛАТЬ ВЫВОДЫ ИЗ ЭТИХ ОГРЫЗКОВ?
1. По числу пропусков можно судить, что математики в этой книге (да и в программировании) очень много. Правда, в этой главе она достаточно элементарна - немножко логики и теории множеств для оценки быстродействия программ. Я ее выкинул только потому, что она мешала "считать ячейки" в моделях.
2. Можно видеть, что все вычислительные модели с точки зрения программирования эквивалентны и вся их логика сводится к работе с "ячейками". Причем это работа в точности такая, как описывали КИБЕРНЕТИКИ. Разница только в том, что по мере роста удобства написания программ множатся и разночтения. Слишком о многом надо договариваться, изобретая языки высокого уровня.
3. Некоторые модели удобнее реализовывать на специально организованных "ячейках". Особенно это касается разницы между РАМ (гарвардской архитектурой) и РАСП (архитектурой фон Неймана). Но иногда в истории ЭВМ появлялись даже системы "ячеек", ориентированные на языки высокого уровня.
4. Можно видеть, что в описанных моделях полностью отсутствуют "механические части ГОЛЕМОВ". Где глаза, уши и прочее мультимедиа? Ответ - в наборах специальных ячеек. Контроллеры устройств, порты ввода-вывода, видеопамять, диски памяти - это все особые пространства "ячеек" (как "лента" и "регистры").
Последний раз редактировалось: Gudleifr (Чт Фев 04, 2021 1:37 pm), всего редактировалось 2 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
70-е годы XX века. Компьютеров уже много, но они еще не совсем персональные. Казалось, еще немного, и "усилитель мозга" станет реальностью...
И опять две книги одного автора. 82-го и 90-го годов. Начало и конец бума. Операционные системы, графические интерфейсы, базы данных и знаний, домашние компьютеры... Но... в конце 70-х КИБЕРНЕТИКА объявлена вне закона. Все последующее - пир во время чумы. В 92-м году закрывается программа "машин 5-го поколения"... Программирование больше не нужно. Ведь, "все уже запрограммировано".
Л.А.РАСТРИГИН
ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, СИСТЕМЫ, СЕТИ...
1982
Автор не столько перебирает все мыслимые на 82-й год способы применения ЭВМ в жизни, сколько иллюстрирует этими способами некоторые КИБЕРНЕТИЧЕСКИЕ возможности компьютеров (особенно - милую его сердцу адаптацию). Поэтому не надо сразу отбрасывать уже всем надоевшие "микроконтроллеры" и "экспертные системы", мол "сейчас гораздо покруче будет". О принципах-то лежащих в основе все уже давно забыли. А они, эти принципы, могли бы нам и посейчас пользу приносить, если бы от них не отмахивались, как от скучной школьной таблицы умножения...
ПРЕДИСЛОВИЕ
ГЛАВА 1. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ
ЧТО ЖЕ ТАКОЕ ИНФОРМАЦИЯ?и
ЗАЧЕМ НУЖНО МНОГО И БЫСТРО СЧИТАТЬ?
ПЕРВОЕ ПОКОЛЕНИЕ
ВТОРОЕ ПОКОЛЕНИЕ
ТРЕТЬЕ ПОКОЛЕНИЕ
ЧЕТВЕРТОЕ ПОКОЛЕНИЕ
ЭТИКЕТ ОБЩЕНИЯ С ЭВМ
ПРОГРАММА
КАЛЬКУЛЯТОР - ПРОСТЕЙШАЯ ЭВМ
ЯЗЫКОВЫЕ ТРУДНОСТИ (ОБЩЕНИЕ С ЭВМ)
ЭЛЕМЕНТАРНЫЙ ФОРТРАН
КАК ВВОДЯТ ИНФОРМАЦИЮ В ЭВМ?
КАК ИЗБАВИТЬСЯ ОТ ОШИБОК?
ДИАЛОГ С ЭВМ - ЗАЧЕМ ОН?
ПОЛЬЗОВАТЕЛИ БЫВАЮТ РАЗНЫЕ...
ДИАЛОГ СПОСОБОМ "МЕНЮ"
МЕНЮ В ИНФОРМАЦИОННЫХ СИСТЕМАХ
ЯЗЫК ДЛЯ ТУЗЕМЦЕВ (БЭЙСИК)
ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ?
ПАКЕТЫ ПРИКЛАДНЫХ ПРОГРАММ
СИСТЕМНЫЕ ПРОГРАММЫ
ЭВМ В РОЛИ ЦЕЗАРЯ
ОПЕРАЦИОННАЯ СИСТЕМА
МОНТЕ-КАРЛО И ЭВМ
КАК НЫНЧЕ ГРАБЯТ БАНКИ (ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ)
ИЗВОЛЬТЕ БРИТЬСЯ... (ЯЗЫК ПРОГРАММИРОВАНИЯ GPSS)
МНОГОЭТАЖНАЯ ПАМЯТЬ ЭВМ
АДАПТАЦИЯ ЭВМ
"ДВУРУКИЙ БАНДИТ"
ЭВМ КАК ЗАПИСНАЯ КНИЖКА (БАНК ДАННЫХ)
КОМПЬЮТЕР-РЕПЕТИТОР (ЭВМ В ОБУЧЕНИИ)
ЧТО ЖЕ ТАКОЕ МИКРОПРОЦЕССОР?
АЙБОЛИТ С КОМПЬЮТЕРОМ (ЭВМ В ПРОЦЕССАХ ПРИНЯТИЯ РЕШЕНИЙ)
ГЛАВА 2. ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
ЧЕМ ПЛОХА ЭВМ?
ОСНОВНЫЕ ЧЕРТЫ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ КОЛЛЕКТИВНОГО ПОЛЬЗОВАНИЯ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В СИСТЕМАХ УПРАВЛЕНИЯ
УПРАВЛЕНИЕ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В УПРАВЛЕНИИ РЕАЛЬНЫМИ ОБЪЕКТАМИ
АСУТП
МЕДИЦИНСКИЕ СИСТЕМЫ ИНТЕНСИВНОЙ ТЕРАПИИ
УПРАВЛЕНИЕ ЭКСПЕРИМЕНТОМ
СПЕЦИФИКА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
НАДЕЖНЫЕ МАШИНЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ!
ЗАДАЧИ БЫВАЮТ РАЗНЫЕ...
ПРИНЦИПЫ "ЦИФРОПЕРЕМАЛЫВАНИЯ"
ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА
КОНВЕЙЕР ВЫЧИСЛЕНИЙ
ПАСТБИЩЕ ДЛЯ ... ПРОЦЕССОРОВ
ОБ АДАПТАЦИИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
ГЛАВА 3. ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ
МЕГРЭ В ЗАТРУДНЕНИИ
ЧЕМ ПЛОХИ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ?
БИП-БИП!
ЧТО НУЖНО ДЛЯ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ?
КАК СВЯЗЫВАЮТСЯ ДВЕ МАШИНЫ?
ВОЙНА С ПОМЕХАМИ
АЛЛО, ОТВЕТЬТЕ КОМПЬЮТЕРУ!
ПРИМИТЕ СООБЩЕНИЕ!
ПРИНЦИП ГОРЯЧЕЙ КАРТОШКИ
ВЫ МНЕ ПИСАЛИ. НЕ ОТПИРАЙТЕСЬ...
ДЕЛА ПРОТОКОЛЬНЫЕ...
ПРОТОКОЛЫ ВЫСОКОГО УРОВНЯ
ПРОТОКОЛЫ НИЗКОГО УРОВНЯ (ТРАНСПОРТНАЯ СЕТЬ)
ДАТАГРАММЫ
ВИРТУАЛЬНЫЕ СОЕДИНЕНИЯ
А НЕЛЬЗЯ ЛИ ПРОЩЕ? (СВЯЗЬ ЧЕРЕЗ СПУТНИК)
АДАПТАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
МЕГРЭ ВЫХОДИТ В СЕТИ
ОТРЕЗВИМСЯ НЕМНОГО...
ЧТО ЖЕ ДАЛЬШЕ? (ЗАКЛЮЧЕНИЕ)
***
ЗАМЕЧАНИЕ
Когда я в те годы читал книжку Растригина, мне было непонятно, почему язык FORTRAN он называет сложным, а BASIC - простым. Опыт общения с ЭВМ был у меня тогда мизерным. Наверное, сейчас этот вопрос тоже может возникнуть у читателей, т.к. опыт общения с ТЕМИ ЭВМ сейчас тоже есть мало у кого.
Так что, поясню. FORTRAN сложнее BASIC по двум причинам.
1. FORTRAN был не столько серьезным языком, сколько языком для серьезных ЭВМ. Программу на нем приходилось писать в тетрадке, переписывая листы начисто после каждого исправления. Потом - садиться за перфоратор и вбивать каждую строку на отдельную карту. Затем - отдавать колоду перфокарт на вычисление. Получать от машины распечатку ошибок, искать в колоде ошибочные карты, набивать их заново... Наконец получать многометровую распечатку результатов программы, заполненную столбцами чисел, и обводить фломастером те цифры, которые нас интересовали. BASIC - это уже язык для машин следующего поколения. Править программу в нем можно было прямо по ходу работы, на том же экране, на котором выдаются результаты прогона. Изменяя данные по промежуточным остановам. Это было так просто, что казалось несерьезным.
2. В описании "Упрощенного Алгола" Ахо и компания упомянули, что многие вещи принимаются по умолчанию или общепринятым соглашениям. Так вот, FORTRAN создавался в те времена, когда эти соглашения еще только формировались. И многие вещи - области данных, типы переменных, передачу параметров, форматы ввода-вывода - в нем требовалось описывать слишком строго. Например, строки текста вводились исключительно в операторах ввода-вывода, и модифицировать их на лету было практически невозможно. В BASIC же, как и в "Упрощенном алголе" типы параметров и переменных приняли "очевидными", и пропускаемыми по умолчанию. Как мы вспоминали в самом начале, он умеет самым простым для пользователя и безопасным для системы способом:
- запрашивать данные;
- сохранять данные;
- генерировать случайные числа;
- вычислять;
- принимать решения, сравнивая данные разными способами;
- сообщать результаты вычислений, решения, сохраненные данные;
- делать точно то, что вы ему приказали, даже если это глупо;
- не умеет делать то, что вы ему не приказывали.
***
ЕЩЕ ОДНО ЗАМЕЧАНИЕ
Обратите внимание на эти цитаты (1982-й год!)
Для чего нужны сети:
И опять две книги одного автора. 82-го и 90-го годов. Начало и конец бума. Операционные системы, графические интерфейсы, базы данных и знаний, домашние компьютеры... Но... в конце 70-х КИБЕРНЕТИКА объявлена вне закона. Все последующее - пир во время чумы. В 92-м году закрывается программа "машин 5-го поколения"... Программирование больше не нужно. Ведь, "все уже запрограммировано".
Л.А.РАСТРИГИН
ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, СИСТЕМЫ, СЕТИ...
1982
Автор не столько перебирает все мыслимые на 82-й год способы применения ЭВМ в жизни, сколько иллюстрирует этими способами некоторые КИБЕРНЕТИЧЕСКИЕ возможности компьютеров (особенно - милую его сердцу адаптацию). Поэтому не надо сразу отбрасывать уже всем надоевшие "микроконтроллеры" и "экспертные системы", мол "сейчас гораздо покруче будет". О принципах-то лежащих в основе все уже давно забыли. А они, эти принципы, могли бы нам и посейчас пользу приносить, если бы от них не отмахивались, как от скучной школьной таблицы умножения...
ПРЕДИСЛОВИЕ
ГЛАВА 1. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ
ЧТО ЖЕ ТАКОЕ ИНФОРМАЦИЯ?и
ЗАЧЕМ НУЖНО МНОГО И БЫСТРО СЧИТАТЬ?
ПЕРВОЕ ПОКОЛЕНИЕ
ВТОРОЕ ПОКОЛЕНИЕ
ТРЕТЬЕ ПОКОЛЕНИЕ
ЧЕТВЕРТОЕ ПОКОЛЕНИЕ
ЭТИКЕТ ОБЩЕНИЯ С ЭВМ
ПРОГРАММА
КАЛЬКУЛЯТОР - ПРОСТЕЙШАЯ ЭВМ
ЯЗЫКОВЫЕ ТРУДНОСТИ (ОБЩЕНИЕ С ЭВМ)
ЭЛЕМЕНТАРНЫЙ ФОРТРАН
КАК ВВОДЯТ ИНФОРМАЦИЮ В ЭВМ?
КАК ИЗБАВИТЬСЯ ОТ ОШИБОК?
ДИАЛОГ С ЭВМ - ЗАЧЕМ ОН?
ПОЛЬЗОВАТЕЛИ БЫВАЮТ РАЗНЫЕ...
ДИАЛОГ СПОСОБОМ "МЕНЮ"
МЕНЮ В ИНФОРМАЦИОННЫХ СИСТЕМАХ
ЯЗЫК ДЛЯ ТУЗЕМЦЕВ (БЭЙСИК)
ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ?
ПАКЕТЫ ПРИКЛАДНЫХ ПРОГРАММ
СИСТЕМНЫЕ ПРОГРАММЫ
ЭВМ В РОЛИ ЦЕЗАРЯ
ОПЕРАЦИОННАЯ СИСТЕМА
МОНТЕ-КАРЛО И ЭВМ
КАК НЫНЧЕ ГРАБЯТ БАНКИ (ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ)
ИЗВОЛЬТЕ БРИТЬСЯ... (ЯЗЫК ПРОГРАММИРОВАНИЯ GPSS)
МНОГОЭТАЖНАЯ ПАМЯТЬ ЭВМ
АДАПТАЦИЯ ЭВМ
"ДВУРУКИЙ БАНДИТ"
ЭВМ КАК ЗАПИСНАЯ КНИЖКА (БАНК ДАННЫХ)
КОМПЬЮТЕР-РЕПЕТИТОР (ЭВМ В ОБУЧЕНИИ)
ЧТО ЖЕ ТАКОЕ МИКРОПРОЦЕССОР?
АЙБОЛИТ С КОМПЬЮТЕРОМ (ЭВМ В ПРОЦЕССАХ ПРИНЯТИЯ РЕШЕНИЙ)
ГЛАВА 2. ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
ЧЕМ ПЛОХА ЭВМ?
ОСНОВНЫЕ ЧЕРТЫ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ КОЛЛЕКТИВНОГО ПОЛЬЗОВАНИЯ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В СИСТЕМАХ УПРАВЛЕНИЯ
УПРАВЛЕНИЕ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В УПРАВЛЕНИИ РЕАЛЬНЫМИ ОБЪЕКТАМИ
АСУТП
МЕДИЦИНСКИЕ СИСТЕМЫ ИНТЕНСИВНОЙ ТЕРАПИИ
УПРАВЛЕНИЕ ЭКСПЕРИМЕНТОМ
СПЕЦИФИКА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
НАДЕЖНЫЕ МАШИНЫ ИЗ НЕНАДЕЖНЫХ ЭЛЕМЕНТОВ!
ЗАДАЧИ БЫВАЮТ РАЗНЫЕ...
ПРИНЦИПЫ "ЦИФРОПЕРЕМАЛЫВАНИЯ"
ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА
КОНВЕЙЕР ВЫЧИСЛЕНИЙ
ПАСТБИЩЕ ДЛЯ ... ПРОЦЕССОРОВ
ОБ АДАПТАЦИИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
ГЛАВА 3. ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ
МЕГРЭ В ЗАТРУДНЕНИИ
ЧЕМ ПЛОХИ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ?
БИП-БИП!
ЧТО НУЖНО ДЛЯ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ?
КАК СВЯЗЫВАЮТСЯ ДВЕ МАШИНЫ?
ВОЙНА С ПОМЕХАМИ
АЛЛО, ОТВЕТЬТЕ КОМПЬЮТЕРУ!
ПРИМИТЕ СООБЩЕНИЕ!
ПРИНЦИП ГОРЯЧЕЙ КАРТОШКИ
ВЫ МНЕ ПИСАЛИ. НЕ ОТПИРАЙТЕСЬ...
ДЕЛА ПРОТОКОЛЬНЫЕ...
ПРОТОКОЛЫ ВЫСОКОГО УРОВНЯ
ПРОТОКОЛЫ НИЗКОГО УРОВНЯ (ТРАНСПОРТНАЯ СЕТЬ)
ДАТАГРАММЫ
ВИРТУАЛЬНЫЕ СОЕДИНЕНИЯ
А НЕЛЬЗЯ ЛИ ПРОЩЕ? (СВЯЗЬ ЧЕРЕЗ СПУТНИК)
АДАПТАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
МЕГРЭ ВЫХОДИТ В СЕТИ
ОТРЕЗВИМСЯ НЕМНОГО...
ЧТО ЖЕ ДАЛЬШЕ? (ЗАКЛЮЧЕНИЕ)
***
ЗАМЕЧАНИЕ
Когда я в те годы читал книжку Растригина, мне было непонятно, почему язык FORTRAN он называет сложным, а BASIC - простым. Опыт общения с ЭВМ был у меня тогда мизерным. Наверное, сейчас этот вопрос тоже может возникнуть у читателей, т.к. опыт общения с ТЕМИ ЭВМ сейчас тоже есть мало у кого.
Так что, поясню. FORTRAN сложнее BASIC по двум причинам.
1. FORTRAN был не столько серьезным языком, сколько языком для серьезных ЭВМ. Программу на нем приходилось писать в тетрадке, переписывая листы начисто после каждого исправления. Потом - садиться за перфоратор и вбивать каждую строку на отдельную карту. Затем - отдавать колоду перфокарт на вычисление. Получать от машины распечатку ошибок, искать в колоде ошибочные карты, набивать их заново... Наконец получать многометровую распечатку результатов программы, заполненную столбцами чисел, и обводить фломастером те цифры, которые нас интересовали. BASIC - это уже язык для машин следующего поколения. Править программу в нем можно было прямо по ходу работы, на том же экране, на котором выдаются результаты прогона. Изменяя данные по промежуточным остановам. Это было так просто, что казалось несерьезным.
2. В описании "Упрощенного Алгола" Ахо и компания упомянули, что многие вещи принимаются по умолчанию или общепринятым соглашениям. Так вот, FORTRAN создавался в те времена, когда эти соглашения еще только формировались. И многие вещи - области данных, типы переменных, передачу параметров, форматы ввода-вывода - в нем требовалось описывать слишком строго. Например, строки текста вводились исключительно в операторах ввода-вывода, и модифицировать их на лету было практически невозможно. В BASIC же, как и в "Упрощенном алголе" типы параметров и переменных приняли "очевидными", и пропускаемыми по умолчанию. Как мы вспоминали в самом начале, он умеет самым простым для пользователя и безопасным для системы способом:
- запрашивать данные;
- сохранять данные;
- генерировать случайные числа;
- вычислять;
- принимать решения, сравнивая данные разными способами;
- сообщать результаты вычислений, решения, сохраненные данные;
- делать точно то, что вы ему приказали, даже если это глупо;
- не умеет делать то, что вы ему не приказывали.
***
ЕЩЕ ОДНО ЗАМЕЧАНИЕ
Обратите внимание на эти цитаты (1982-й год!)
Для того чтобы и ЭВМ понимала языки высокого уровня, для нее необходим переводчик с этого языка на ее машинный язык. Таким переводчиком является ТРАНСЛЯТОР, т.е. программа, которая преобразует программу, написанную на языке высокого уровня, в машинную программу. Так образуется более удобная для пользователя цепочка: пользователь - программа на языке высокого уровня - транслятор - машинная программа - ЭВМ.
Эта цепочка буквально сделала революцию в применении ЭВМ, а следовательно, и в их развитии. Число активных пользователей стало быстро расти, так как процесс программирования упростился и, что тоже очень важно, не надо было идти "на поклон" к программисту.
А что же программисты? Остались без куска хлеба? Нет! Им дел даже прибавилось. На их плечи легли проблемы так называемого системного программирования, например такие, как сложнейшая задача создания транслятора. Современный программист - это прежде всего системный программист. Если теперь массовому пользователю не надо знать специфику каждой конкретной машины (программы на языках высокого уровня никак не связаны со спецификой той машины, на которой будет решаться задача, об этом позаботится транслятор), то программист по-прежнему представляет "интересы" ЭВМ и следит, чтобы она с максимальной эффективностью и правильно была использована (транслятор и выполняет некоторые из этих функций).
Для чего нужны сети:
1. Передача файлов, т.е. пересылка по сети информации, необходимой для осуществления того или иного вычислительного процесса.
2. Удаленный ввод заданий для расчетов, т.е. передача по сети исходных данных для реализации вычислений на какой-то ЭВМ сети, где имеется необходимая программа (вместо того, чтобы эту программу передавать пользователю, что было бы реализацией первого вида взаимодействия - передачей файла, содержащего интересующую пользователя программу).
3. Диалоговое (его часто называют еще интерактивным) взаимодействие пользователя с банками данных. Специфика этого взаимодействия определяется прежде всего многократной реализацией коротких вопросов пользователя и быстрых и коротких ответов банка данных - иначе диалога не получится.
4. Электронная почта является так сказать "бесплатным приложением" вычислительной сети. Она осуществляет передачу текстов писем другим пользователям сети по их имени или паролю, писем заказных или до востребования, с уведомлением о вручении и без. Такая почта объединяет пользователей сети в необычайный коллектив, где отдельные его представители могут лично не знать друг друга, будучи расположенными, например, на разных континентах, и тем не менее успешно сотрудничать при решении на сети своих сложных задач.
Последний раз редактировалось: Gudleifr (Пн Фев 08, 2021 1:05 pm), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
РАСТРИГИН
С КОМПЬЮТЕРОМ НАЕДИНЕ
М.: "Радио и связь", 1990
DJVU, 2.16Мб
ДЕТЕКТИВ ВМЕСТО ПРЕДИСЛОВИЯ
I. КОМПЬЮТЕР - ВАШ СОБЕСЕДНИК
1. ЗНАКОМЬТЕСЬ - КОМПЬЮТЕР
РОЖДЕНИЕ КОМПЬЮТЕРА
НЕ СЧЕТОМ ЕДИНЫМ...
ЛОГИЧЕСКИЕ АТОМЫ КОМПЬЮТЕРА
ПРОГРАММИРУЕМОСТЬ - ОСНОВНОЕ СВОЙСТВО КОМПЬЮТЕРА
ДВОИЧНОЕ "МЫШЛЕНИЕ" КОМПЬЮТЕРА
ИЗ ИСТОРИИ КОМПЬЮТЕРА
АЛГОРИТМ, ПРОГРАММА И ДАННЫЕ
АЛУ - ЭЛЕКТРОННЫЙ МОЗГ КОМПЬЮТЕРА
ПАМЯТЬ КОМПЬЮТЕРА
УПРАВЛЯЮЩЕЕ УСТРОЙСТВО КОМПЬЮТЕРА
УСТРОЙСТВА ВВОДА
УСТРОЙСТВА ВЫВОДА
2. МОЙ, ТОЛЬКО МОЙ (ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР)
КОМПЬЮТЕРЫ БЫВАЮТ РАЗНЫЕ
МИНИМАЛЬНЫЙ КОМПЛЕКТ
ОБЛИК ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
ЗАЧЕМ НУЖЕН ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР
"МЫШЬ" В ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ
ОБУЧЕНИЕ РАБОТЕ С СОБОЙ
ДИСПЛЕЙ - ЛИЦО ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
ИГРА - ДЕЛО СЕРЬЕЗНОЕ
ГИБКИЕ ДИСКИ - СМЕННАЯ ПАМЯТЬ КОМПЬЮТЕРА
ПАКЕТЫ ПРОГРАММ ТЕКСТОВОЙ ОБРАБОТКИ
ПАКЕТЫ ПРОГРАММ ГРАФИКИ
ПАКЕТЫ ПРОГРАММ ТАБЛИЧНОЙ ОБРАБОТКИ
ПАКЕТЫ ПРОГРАММ БАЗ ДАННЫХ
КОМПЬЮТЕР - СРЕДСТВО ФОРМАЛИЗАЦИИ ЗНАНИИ
ЧТО ЖЕ ДАЛЬШЕ?
3. КАК БЫ ТЕБЕ ЭТО ОБЪЯСНИТЬ? (ПРОБЛЕМА ОБЩЕНИЯ)
МАШИННЫЙ ЯЗЫК
"ЗА" И "ПРОТИВ" МАШИННОГО ЯЗЫКА
БЛИЖЕ К ЧЕЛОВЕКУ!
СИМВОЛИЧЕСКИЕ ЯЗЫКИ
ЯЗЫКИ, НЕ ЗАВИСЯЩИЕ ОТ КОМПЬЮТЕРА
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ - РЕЖИМЫ ТРАНСЛЯЦИИ
ПРОГРАММИРОВАНИЕ БЕЗ... ПРОГРАММИРОВАНИЯ
КОГДА МЕНЮ "НЕВКУСНОЕ"
4. "ДУША" КОМПЬЮТЕРА (ОПЕРАЦИОННАЯ СИСТЕМА)
ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ
ФАЙЛОВАЯ СИСТЕМА
РЕДАКТОР
ТЕКСТОВЫЙ РЕДАКТОР
ГРАФИЧЕСКИЙ РЕДАКТОР
ОПЕРАЦИОННАЯ СИСТЕМА - РАСПРЕДЕЛИТЕЛЬ РЕСУРСОВ
РАСПРЕДЕЛЕНИЕ ПРОЦЕССОРНОГО ВРЕМЕНИ
КРУГОВОРОТ
РАСПРЕДЕЛЕНИЕ РЕСУРСА ПАМЯТИ
И ЕЩЕ МНОГОЕ ДРУГОЕ...
5. ЯЗЫК МОЙ - ДРУГ МОЙ! (ЯЗЫКИ ОБЩЕНИЯ С КОМПЬЮТЕРОМ)
ПРОГРАММИРОВАТЬ ИЛИ МОДЕЛИРОВАТЬ!
ФОРТРАН
БЕЙСИК
АЛГОЛ
ПАСКАЛЬ
АДА
КОБОЛ
ПЛ/1
GPSS - УНИВЕРСАЛЬНЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ
ЯЗЫКИ ОПЕРАЦИОННОЙ СИСТЕМЫ
6. ВСЕМ МИРОМ (ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ)
СПЕЦИАЛИЗАЦИЯ ПРОТИВ УНИВЕРСАЛЬНОСТИ
ЗАЧЕМ НУЖНА ВЫСОКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ?
КАК ПОВЫСИТЬ БЫСТРОДЕЙСТВИЕ?
РАСПАРАЛЛЕЛИВАНИЕ
МАТРИЧНАЯ ОБРАБОТКА
АРХИТЕКТУРА КОМПЬЮТЕРА
МАШИНЫ ПОТОКА ДАННЫХ
КОМПЬЮТЕР ИЗ... КОМПЬЮТЕРОВ
АССОЦИАТИВНАЯ ОБРАБОТКА
СУПЕРКОМПЬЮТЕРЫ
МАШИННАЯ ГРАФИКА
МОЖНО ЛИ ПОЩУПАТЬ ВООБРАЖАЕМУЮ ДЕТАЛЬ?
КОМПРОМИСС ИЛИ ВЫБОР
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ ВЫСОКОЙ НАДЕЖНОСТИ
7. АЛЛО, ОТВЕТЬТЕ КОМПЬЮТЕРУ (ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ) ПО
СРЕДСТВО ПЕРЕРАСПРЕДЕЛЕНИЯ РЕСУРСОВ
ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ
РЕСУРСЫ, РЕСУРСЫ, РЕСУРСЫ...
СЕМЬ УРОВНЕЙ ПРОТОКОЛОВ
ЗАЩИТА ОТ ПОМЕХ
СНОВА ПРОТОКОЛЫ
ТИПЫ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
ТЕЛЕТЕКСТ
ВИДЕОТЕКС (БЕЗ Т)
ИЕРАРХИЯ СЕТЕЙ
II. ДИАЛОГ
8. ПОГОВОРИ-КА ТЫ СО МНОЙ (ДИАЛОГ КАК ОБЩЕНИЕ)
ДИАЛОГ. ЧТО ЭТО ТАКОЕ!
МНЕНИЕ ПСИХОЛОГА
МНЕНИЕ ИНЖЕНЕРА
СПОР КАК ДИАЛОГ
9. ПОЙМИ ХОТЬ САМОЕ ПРОСТОЕ (ПРОБЛЕМА ПОНИМАНИЯ ЕСТЕСТВЕННОГО ЯЗЫКА)
УРОВНИ ПОНИМАНИЯ
ПЕРВЫЙ УРОВЕНЬ ПОНИМАНИЯ
ВТОРОЙ УРОВЕНЬ ПОНИМАНИЯ
ТРЕТИЙ УРОВЕНЬ ПОНИМАНИЯ
ЧЕТВЕРТЫЙ УРОВЕНЬ ПОНИМАНИЯ
ПРОГРАММА ЭЛИЗА
ТРУДНОСТИ ПОНИМАНИЯ СМЫСЛА ТЕКСТА
ТРУДНОСТЬ ПЕРВАЯ
ТРУДНОСТЬ ВТОРАЯ
ТРУДНОСТЬ ТРЕТЬЯ
ТРУДНОСТЬ ЧЕТВЕРТАЯ
ТРУДНОСТЬ ПЯТАЯ
КАК КОМПЬЮТЕР ПЕРЕВОДИТ
КАК КОМПЬЮТЕР ПОНИМАЕТ
МОРФОЛОГИЧЕСКИЙ АНАЛИЗ
СИНТАКСИЧЕСКИЙ АНАЛИЗ
СЕМАНТИЧЕСКИЙ АНАЛИЗ
ПРАГМАТИЧЕСКИЙ АНАЛИЗ
МЕТАФОРЫ - АРБУЗНАЯ КОРКА КОМПЬЮТЕРА
ЧТО ЖЕ ДАЛЬШЕ?
ГИМН КАНЦЕЛЯРИТУ
10. ОТЦЫ И ДЕТИ, ВНУКИ И ПРАВНУКИ (КОМПЬЮТЕРЫ ПЯТОГО ПОКОЛЕНИЯ)
ТЕМП, ТЕМП, ТЕМП...
С ЧЕГО ВСЕ НАЧАЛОСЬ
ПОКОЛЕНИЯ КОМПЬЮТЕРОВ
ПЕРВОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ВТОРОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ТРЕТЬЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ЧЕТВЕРТОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ТРЕБОВАНИЯ К КОМПЬЮТЕРАМ ПЯТОГО ПОКОЛЕНИЯ
РЕЛЯЦИОННАЯ БАЗА ДАННЫХ
11. СУРРОГАТ ИНТЕЛЛЕКТА (ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ)
СПЕЦИФИКА МЕТОДОВ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
ВОСПРИЯТИЕ ИЗОБРАЖЕНИЙ
ВЫЯВЛЕНИЕ ЗАКОНОМЕРНОСТЕЙ
ПОНИМАНИЕ ЕСТЕСТВЕННОГО ЯЗЫКА
ПЛАНИРОВАНИЕ ДЕЙСТВИЙ
12. ТЯЖКИЙ ПУТЬ ДОЗНАНИЯ (ПРЕДСТАВЛЕНИЕ ЗНАНИЙ В КОМПЬЮТЕРЕ)
ЧТО ТАКОЕ ЗНАНИЕ?
ДАННЫЕ И ЗНАНИЯ
ТРУДНОСТИ ФОРМАЛИЗАЦИИ
ЯЗЫК СИТУАЦИОННОГО УПРАВЛЕНИЯ
СЛОВАРЬ
ГРАММАТИКА
СЕМАНТИЧЕСКИЕ СЕТИ
ФРЕЙМЫ
13. ИНТЕЛЛЕКТУАЛЬНЫЙ ЯЗЫК (ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА)
ПРОЦЕДУРНЫЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ
ПРОЛОГ
ЛИСП
НАПИШЕМ ЛИСП-ПРОГРАММУ СУММИРОВАНИЯ И ПРОКОММЕНТИРУЕМ ЕЕ:
14. К КОМПЬЮТЕРУ ЗА КОНСУЛЬТАЦИЕЙ (ЭКСПЕРТНЫЕ СИСТЕМЫ)
ЗАЧЕМ НУЖНЫ ЭКСПЕРТЫ
ПОРТРЕТ КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ
ЗВЕНЬЯ ИСПОРЧЕННОГО ТЕЛЕФОНА
СОКРАЩЕНИЕ ШТАТОВ
ЧТО ДОЛЖНА УМЕТЬ ЭКСПЕРТНАЯ СИСТЕМА
ДИАЛОГ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
БАЗА ЗНАНИЙ
ПЛАНИРОВАНИЕ
ПОДСИСТЕМА ОБЪЯСНЕНИЯ
БЕЗНАДЕЖНОЕ ДЕЛО ПРОГНОЗОВ (ЗАКЛЮЧЕНИЕ)
ДЕТЕКТИВ ВМЕСТО ПОСЛЕСЛОВИЯ
ЛЮБОЗНАТЕЛЬНОМУ ЧИТАТЕЛЮ
***
ЗАМЕЧАНИЯ
Почему вдруг автор начал свою новую книгу не с "руководящей роли партии в насущном деле кибернетического управления промышленностью", а с описания "типового компьютера"? Все очень просто: автору его просто дали - поставили на стол "персоналку". И это описание вводит терминологию, используемую в инструкции.
С точки зрения программирования, наличие этого описания - шаг назад. Вместо устрашающе монструозных "наборов ячеек" - обычная умная печатающая машинка. Пользователю, который имеет дело только с высшими функциями машинки, это описание - лишь повод самоуспокоиться и не думать о железных внутренностях, все, ведь, понятно. А системный программист быстро убеждается, что все совсем не так просто - и железяки немного не такие, и многое реализовано, поверх железяк или даже внутри них, программно.
***
Конечно, ПК 90-х - зрелище, по современным меркам, жалкое, но основное противоречие уже очевидно: с одной стороны - пользователю ПРЕДЛАГАЕТСЯ ДОПРОГРАММИРОВАТЬ то, чего ему не хватает; с другой - все, что было легко запрограммировать, УЖЕ ЗАПРОГРАММИРОВАНО. Прошедшие с тех пор 30 лет ушли на полировку "графического пользовательского интерфейса" и затыкание в нем очевидных дыр, в которые пользователь мог бы пролезть, чтобы что-то сделать бесплатно.
Книги "по программированию", выпущенные позже, и вовсе поражают сложностью требующихся программисту технологий, и... ничтожностью результатов этого самого программирования...
***
Можно заметить, что, касаясь тех же тем, что и в прошлой книге, автор рассуждает уже немного по-другому: рассматривает применение компьютеров уже не столько как следствие их забавных кибернетических возможностей, сколько как удовлетворение насущных нужд вполне обычного человека.
Но, кончается это плохо:
И да, вместо компьютеров пятого поколения мы получили Интернет... Что, по идее, еще лучше - возможность построения "баз знаний" и "экспертных систем" всемирового объема. И что? Убедились, что "базы знаний" и "экспертные системы" опять невозможны - как и в 90-е. Дальше "андроидов" и "автоматов по продаже святой воды" опять дело не идет.
С КОМПЬЮТЕРОМ НАЕДИНЕ
М.: "Радио и связь", 1990
DJVU, 2.16Мб
ДЕТЕКТИВ ВМЕСТО ПРЕДИСЛОВИЯ
I. КОМПЬЮТЕР - ВАШ СОБЕСЕДНИК
1. ЗНАКОМЬТЕСЬ - КОМПЬЮТЕР
РОЖДЕНИЕ КОМПЬЮТЕРА
НЕ СЧЕТОМ ЕДИНЫМ...
ЛОГИЧЕСКИЕ АТОМЫ КОМПЬЮТЕРА
ПРОГРАММИРУЕМОСТЬ - ОСНОВНОЕ СВОЙСТВО КОМПЬЮТЕРА
ДВОИЧНОЕ "МЫШЛЕНИЕ" КОМПЬЮТЕРА
ИЗ ИСТОРИИ КОМПЬЮТЕРА
АЛГОРИТМ, ПРОГРАММА И ДАННЫЕ
АЛУ - ЭЛЕКТРОННЫЙ МОЗГ КОМПЬЮТЕРА
ПАМЯТЬ КОМПЬЮТЕРА
УПРАВЛЯЮЩЕЕ УСТРОЙСТВО КОМПЬЮТЕРА
УСТРОЙСТВА ВВОДА
УСТРОЙСТВА ВЫВОДА
2. МОЙ, ТОЛЬКО МОЙ (ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР)
КОМПЬЮТЕРЫ БЫВАЮТ РАЗНЫЕ
МИНИМАЛЬНЫЙ КОМПЛЕКТ
ОБЛИК ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
ЗАЧЕМ НУЖЕН ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР
"МЫШЬ" В ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ
ОБУЧЕНИЕ РАБОТЕ С СОБОЙ
ДИСПЛЕЙ - ЛИЦО ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
ИГРА - ДЕЛО СЕРЬЕЗНОЕ
ГИБКИЕ ДИСКИ - СМЕННАЯ ПАМЯТЬ КОМПЬЮТЕРА
ПАКЕТЫ ПРОГРАММ ТЕКСТОВОЙ ОБРАБОТКИ
ПАКЕТЫ ПРОГРАММ ГРАФИКИ
ПАКЕТЫ ПРОГРАММ ТАБЛИЧНОЙ ОБРАБОТКИ
ПАКЕТЫ ПРОГРАММ БАЗ ДАННЫХ
КОМПЬЮТЕР - СРЕДСТВО ФОРМАЛИЗАЦИИ ЗНАНИИ
ЧТО ЖЕ ДАЛЬШЕ?
3. КАК БЫ ТЕБЕ ЭТО ОБЪЯСНИТЬ? (ПРОБЛЕМА ОБЩЕНИЯ)
МАШИННЫЙ ЯЗЫК
"ЗА" И "ПРОТИВ" МАШИННОГО ЯЗЫКА
БЛИЖЕ К ЧЕЛОВЕКУ!
СИМВОЛИЧЕСКИЕ ЯЗЫКИ
ЯЗЫКИ, НЕ ЗАВИСЯЩИЕ ОТ КОМПЬЮТЕРА
КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ - РЕЖИМЫ ТРАНСЛЯЦИИ
ПРОГРАММИРОВАНИЕ БЕЗ... ПРОГРАММИРОВАНИЯ
КОГДА МЕНЮ "НЕВКУСНОЕ"
4. "ДУША" КОМПЬЮТЕРА (ОПЕРАЦИОННАЯ СИСТЕМА)
ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ
ФАЙЛОВАЯ СИСТЕМА
РЕДАКТОР
ТЕКСТОВЫЙ РЕДАКТОР
ГРАФИЧЕСКИЙ РЕДАКТОР
ОПЕРАЦИОННАЯ СИСТЕМА - РАСПРЕДЕЛИТЕЛЬ РЕСУРСОВ
РАСПРЕДЕЛЕНИЕ ПРОЦЕССОРНОГО ВРЕМЕНИ
КРУГОВОРОТ
РАСПРЕДЕЛЕНИЕ РЕСУРСА ПАМЯТИ
И ЕЩЕ МНОГОЕ ДРУГОЕ...
5. ЯЗЫК МОЙ - ДРУГ МОЙ! (ЯЗЫКИ ОБЩЕНИЯ С КОМПЬЮТЕРОМ)
ПРОГРАММИРОВАТЬ ИЛИ МОДЕЛИРОВАТЬ!
ФОРТРАН
БЕЙСИК
АЛГОЛ
ПАСКАЛЬ
АДА
КОБОЛ
ПЛ/1
GPSS - УНИВЕРСАЛЬНЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ
ЯЗЫКИ ОПЕРАЦИОННОЙ СИСТЕМЫ
6. ВСЕМ МИРОМ (ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ)
СПЕЦИАЛИЗАЦИЯ ПРОТИВ УНИВЕРСАЛЬНОСТИ
ЗАЧЕМ НУЖНА ВЫСОКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ?
КАК ПОВЫСИТЬ БЫСТРОДЕЙСТВИЕ?
РАСПАРАЛЛЕЛИВАНИЕ
МАТРИЧНАЯ ОБРАБОТКА
АРХИТЕКТУРА КОМПЬЮТЕРА
МАШИНЫ ПОТОКА ДАННЫХ
КОМПЬЮТЕР ИЗ... КОМПЬЮТЕРОВ
АССОЦИАТИВНАЯ ОБРАБОТКА
СУПЕРКОМПЬЮТЕРЫ
МАШИННАЯ ГРАФИКА
МОЖНО ЛИ ПОЩУПАТЬ ВООБРАЖАЕМУЮ ДЕТАЛЬ?
КОМПРОМИСС ИЛИ ВЫБОР
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ ВЫСОКОЙ НАДЕЖНОСТИ
7. АЛЛО, ОТВЕТЬТЕ КОМПЬЮТЕРУ (ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ) ПО
СРЕДСТВО ПЕРЕРАСПРЕДЕЛЕНИЯ РЕСУРСОВ
ИНТЕРФЕЙСЫ И ПРОТОКОЛЫ
РЕСУРСЫ, РЕСУРСЫ, РЕСУРСЫ...
СЕМЬ УРОВНЕЙ ПРОТОКОЛОВ
ЗАЩИТА ОТ ПОМЕХ
СНОВА ПРОТОКОЛЫ
ТИПЫ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ
ТЕЛЕТЕКСТ
ВИДЕОТЕКС (БЕЗ Т)
ИЕРАРХИЯ СЕТЕЙ
II. ДИАЛОГ
8. ПОГОВОРИ-КА ТЫ СО МНОЙ (ДИАЛОГ КАК ОБЩЕНИЕ)
ДИАЛОГ. ЧТО ЭТО ТАКОЕ!
МНЕНИЕ ПСИХОЛОГА
МНЕНИЕ ИНЖЕНЕРА
СПОР КАК ДИАЛОГ
9. ПОЙМИ ХОТЬ САМОЕ ПРОСТОЕ (ПРОБЛЕМА ПОНИМАНИЯ ЕСТЕСТВЕННОГО ЯЗЫКА)
УРОВНИ ПОНИМАНИЯ
ПЕРВЫЙ УРОВЕНЬ ПОНИМАНИЯ
ВТОРОЙ УРОВЕНЬ ПОНИМАНИЯ
ТРЕТИЙ УРОВЕНЬ ПОНИМАНИЯ
ЧЕТВЕРТЫЙ УРОВЕНЬ ПОНИМАНИЯ
ПРОГРАММА ЭЛИЗА
ТРУДНОСТИ ПОНИМАНИЯ СМЫСЛА ТЕКСТА
ТРУДНОСТЬ ПЕРВАЯ
ТРУДНОСТЬ ВТОРАЯ
ТРУДНОСТЬ ТРЕТЬЯ
ТРУДНОСТЬ ЧЕТВЕРТАЯ
ТРУДНОСТЬ ПЯТАЯ
КАК КОМПЬЮТЕР ПЕРЕВОДИТ
КАК КОМПЬЮТЕР ПОНИМАЕТ
МОРФОЛОГИЧЕСКИЙ АНАЛИЗ
СИНТАКСИЧЕСКИЙ АНАЛИЗ
СЕМАНТИЧЕСКИЙ АНАЛИЗ
ПРАГМАТИЧЕСКИЙ АНАЛИЗ
МЕТАФОРЫ - АРБУЗНАЯ КОРКА КОМПЬЮТЕРА
ЧТО ЖЕ ДАЛЬШЕ?
ГИМН КАНЦЕЛЯРИТУ
10. ОТЦЫ И ДЕТИ, ВНУКИ И ПРАВНУКИ (КОМПЬЮТЕРЫ ПЯТОГО ПОКОЛЕНИЯ)
ТЕМП, ТЕМП, ТЕМП...
С ЧЕГО ВСЕ НАЧАЛОСЬ
ПОКОЛЕНИЯ КОМПЬЮТЕРОВ
ПЕРВОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ВТОРОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ТРЕТЬЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ЧЕТВЕРТОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
ТРЕБОВАНИЯ К КОМПЬЮТЕРАМ ПЯТОГО ПОКОЛЕНИЯ
РЕЛЯЦИОННАЯ БАЗА ДАННЫХ
11. СУРРОГАТ ИНТЕЛЛЕКТА (ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ)
СПЕЦИФИКА МЕТОДОВ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
ВОСПРИЯТИЕ ИЗОБРАЖЕНИЙ
ВЫЯВЛЕНИЕ ЗАКОНОМЕРНОСТЕЙ
ПОНИМАНИЕ ЕСТЕСТВЕННОГО ЯЗЫКА
ПЛАНИРОВАНИЕ ДЕЙСТВИЙ
12. ТЯЖКИЙ ПУТЬ ДОЗНАНИЯ (ПРЕДСТАВЛЕНИЕ ЗНАНИЙ В КОМПЬЮТЕРЕ)
ЧТО ТАКОЕ ЗНАНИЕ?
ДАННЫЕ И ЗНАНИЯ
ТРУДНОСТИ ФОРМАЛИЗАЦИИ
ЯЗЫК СИТУАЦИОННОГО УПРАВЛЕНИЯ
СЛОВАРЬ
ГРАММАТИКА
СЕМАНТИЧЕСКИЕ СЕТИ
ФРЕЙМЫ
13. ИНТЕЛЛЕКТУАЛЬНЫЙ ЯЗЫК (ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА)
ПРОЦЕДУРНЫЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ
ПРОЛОГ
ЛИСП
НАПИШЕМ ЛИСП-ПРОГРАММУ СУММИРОВАНИЯ И ПРОКОММЕНТИРУЕМ ЕЕ:
14. К КОМПЬЮТЕРУ ЗА КОНСУЛЬТАЦИЕЙ (ЭКСПЕРТНЫЕ СИСТЕМЫ)
ЗАЧЕМ НУЖНЫ ЭКСПЕРТЫ
ПОРТРЕТ КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ
ЗВЕНЬЯ ИСПОРЧЕННОГО ТЕЛЕФОНА
СОКРАЩЕНИЕ ШТАТОВ
ЧТО ДОЛЖНА УМЕТЬ ЭКСПЕРТНАЯ СИСТЕМА
ДИАЛОГ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
БАЗА ЗНАНИЙ
ПЛАНИРОВАНИЕ
ПОДСИСТЕМА ОБЪЯСНЕНИЯ
БЕЗНАДЕЖНОЕ ДЕЛО ПРОГНОЗОВ (ЗАКЛЮЧЕНИЕ)
ДЕТЕКТИВ ВМЕСТО ПОСЛЕСЛОВИЯ
ЛЮБОЗНАТЕЛЬНОМУ ЧИТАТЕЛЮ
***
ЗАМЕЧАНИЯ
Почему вдруг автор начал свою новую книгу не с "руководящей роли партии в насущном деле кибернетического управления промышленностью", а с описания "типового компьютера"? Все очень просто: автору его просто дали - поставили на стол "персоналку". И это описание вводит терминологию, используемую в инструкции.
С точки зрения программирования, наличие этого описания - шаг назад. Вместо устрашающе монструозных "наборов ячеек" - обычная умная печатающая машинка. Пользователю, который имеет дело только с высшими функциями машинки, это описание - лишь повод самоуспокоиться и не думать о железных внутренностях, все, ведь, понятно. А системный программист быстро убеждается, что все совсем не так просто - и железяки немного не такие, и многое реализовано, поверх железяк или даже внутри них, программно.
***
Конечно, ПК 90-х - зрелище, по современным меркам, жалкое, но основное противоречие уже очевидно: с одной стороны - пользователю ПРЕДЛАГАЕТСЯ ДОПРОГРАММИРОВАТЬ то, чего ему не хватает; с другой - все, что было легко запрограммировать, УЖЕ ЗАПРОГРАММИРОВАНО. Прошедшие с тех пор 30 лет ушли на полировку "графического пользовательского интерфейса" и затыкание в нем очевидных дыр, в которые пользователь мог бы пролезть, чтобы что-то сделать бесплатно.
Книги "по программированию", выпущенные позже, и вовсе поражают сложностью требующихся программисту технологий, и... ничтожностью результатов этого самого программирования...
***
Можно заметить, что, касаясь тех же тем, что и в прошлой книге, автор рассуждает уже немного по-другому: рассматривает применение компьютеров уже не столько как следствие их забавных кибернетических возможностей, сколько как удовлетворение насущных нужд вполне обычного человека.
Но, кончается это плохо:
***Но обеспечить каждого из нас индивидуальным компьютером - еще не значит обеспечить всех всей необходимой информацией и средствами ее переработки.
И да, вместо компьютеров пятого поколения мы получили Интернет... Что, по идее, еще лучше - возможность построения "баз знаний" и "экспертных систем" всемирового объема. И что? Убедились, что "базы знаний" и "экспертные системы" опять невозможны - как и в 90-е. Дальше "андроидов" и "автоматов по продаже святой воды" опять дело не идет.
Последний раз редактировалось: Gudleifr (Пн Фев 08, 2021 1:05 pm), всего редактировалось 2 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Конечно, описание ЭВМ с точки зрения "конечного пользователя", это не совсем то, что может устроить человека желающего понять, как оно все устроено "на самом деле". Тем более - оценить, сколько это все будет стоить, если он попытается всерьез покопаться в своем компьютере.
Их книг Растригина не вполне ясно, насколько трудно перейти от управления ячейками к искусственному интеллекту. (Более короткий способ приручения компьютера, в обход всех этих общепринятых инструментов, мы уже рассматривали в ТЕМА #3, АБЗАЦ #222).
Л.БЕК
ВВЕДЕНИЕ В СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
М.: "МИР", 1988
(На эту книгу я уже ссылался - ТЕМА #15, АБЗАЦ #386. Кто еще не заметил, весь этот раздел - это развитие того абзаца).
ОТ РЕДАКТОРА ПЕРЕВОДА
ПРЕДИСЛОВИЕ
(Эти части я опустил, т.к. они способны напугать новичка. Книга гораздо проще, чем это пытаются показать автор и переводчики).
ГЛАВА 1. ОСНОВНЫЕ ПОНЯТИЯ
1.1. ВВЕДЕНИЕ
1.2. СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И СТРУКТУРА ЭВМ
1.3. УПРОЩЕННАЯ УЧЕБНАЯ МАШИНА (УУМ)
1.3.1. СТРУКТУРА УУМ
1.3.2. СТРУКТУРА УУМ/ДС
1.4. СТРУКТУРА SYSTEM/370
1.5. СТРУКТУРА ЭВМ VAX
1.6. СТРУКТУРА ЭВМ CYBER
ГЛАВА 2. АССЕМБЛЕРЫ
2.1. ОСНОВНЫЕ ФУНКЦИИ АССЕМБЛЕРА
2.1.1. ПРОСТОЙ АССЕМБЛЕР ДЛЯ УУМ
2.1.2. ТАБЛИЦЫ И АЛГОРИТМЫ АССЕМБЛЕРА
2.2. МАШИННО-ЗАВИСИМЫЕ ХАРАКТЕРИСТИКИ АССЕМБЛЕРА
2.2.1. ФОРМАТЫ КОМАНД И СПОСОБЫ АДРЕСАЦИИ
2.2.2. ПЕРЕМЕЩЕНИЕ ПРОГРАММ
2.3. МАШИННО-НЕЗАВИСИМЫЕ ХАРАКТЕРИСТИКИ АССЕМБЛЕРА
2.3.1. ЛИТЕРАЛЫ
2.3.2. СРЕДСТВА ОПРЕДЕЛЕНИЯ ИМЕН
2.3.3. ВЫРАЖЕНИЯ
2.3.4. ПРОГРАММНЫЕ БЛОКИ
2.3.5. УПРАВЛЯЮЩИЕ СЕКЦИИ И СВЯЗЫВАНИЕ ПРОГРАММ
2.4. ВАРИАНТЫ ПОСТРОЕНИЯ АССЕМБЛЕРОВ
2.4.1. ДВУХПРОСМОТРОВЫЙ АССЕМБЛЕР С ОВЕРЛЕЙНОЙ СТРУКТУРОЙ
2.4.2. ОДНОПРОСМОТРОВЫЕ АССЕМБЛЕРЫ
2.4.3. МНОГОПРОСМОТРОВЫЕ АССЕМБЛЕРЫ
2.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
2.5.1. АССЕМБЛЕР SYSTEM/370
2.5.2. АССЕМБЛЕР ЭВМ VAX
2.5.3. АССЕМБЛЕР ЭВМ CYBER
УПРАЖНЕНИЯ
ГЛАВА 3. ЗАГРУЗЧИКИ И ПРОГРАММЫ СВЯЗЫВАНИЯ
3.1. ОСНОВНЫЕ ФУНКЦИИ ЗАГРУЗЧИКА
3.2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА ЗАГРУЗЧИКОВ
3.2.1. ПЕРЕМЕЩЕНИЕ
3.2.2. СВЯЗЫВАНИЕ ПРОГРАММ
3.2.3. ТАБЛИЦЫ И АЛГОРИТМЫ СВЯЗЫВАЮЩЕГО ЗАГРУЗЧИКА
3.3. МАШИННО-НЕЗАВИСИМЫЕ СВОЙСТВА ЗАГРУЗЧИКОВ
3.3.1. АВТОМАТИЧЕСКИЙ ПОИСК В БИБЛИОТЕКАХ
3.3.2. УПРАВЛЕНИЕ ПРОЦЕССОМ ЗАГРУЗКИ
3.3.3. ОВЕРЛЕЙНАЯ СТРУКТУРА ПРОГРАММ
3.4. ВАРИАНТЫ ПОСТРОЕНИЯ ЗАГРУЗЧИКОВ
3.4.1. РЕДАКТОРЫ СВЯЗЕЙ
3.4.2. ДИНАМИЧЕСКОЕ СВЯЗЫВАНИЕ
3.4.3. РАСКРУЧИВАЮЩИЕ ЗАГРУЗЧИКИ
3.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
3.5.1. РЕДАКТОР СВЯЗЕЙ SYSTEM/370
3.5.2. ПРОГРАММА СВЯЗЫВАНИЯ ЭВМ VAX
3.5.3. ЗАГРУЗЧИК ЭВМ CYBER
УПРАЖНЕНИЯ
ГЛАВА 4. МАКРОПРОЦЕССОРЫ
4.1. ОСНОВНЫЕ ФУНКЦИИ МАКРОПРОЦЕССОРОВ
4.1.1. МАКРООПРЕДЕЛЕНИЯ И МИКРОРАСШИРЕНИЯ
4.1.2. МАКРОПРОЦЕССОР. ТАБЛИЦЫ И ЛОГИКА
4.2. МАШИННО-НЕЗАВИСИМЫЕ ОСОБЕННОСТИ МАКРОПРОЦЕССОРА
4.2.1. КОНКАТЕНАЦИЯ МАКРОПАРАМЕТРОВ
4.2.2. ГЕНЕРАЦИЯ УНИКАЛЬНЫХ МЕТОК
4.2.3. УСЛОВНЫЕ МАКРОРАСШИРЕНИЯ
4.2.4. КЛЮЧЕВЫЕ МАКРОПАРАМЕТРЫ
4.3. ВАРИАНТЫ ПОСТРОЕНИЯ МАКРОПРОЦЕССОРОВ
4.3.1. РЕКУРСИВНАЯ МАКРОГЕНЕРАЦИЯ
4.3.2. МАКРОПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ
4.3.3. МАКРОПРОЦЕССОРЫ, ВСТРОЕННЫЕ В ТРАНСЛЯТОРЫ 4.4. ПРИМЕРЫ РЕАЛИЗАЦИИ
4.4.1. МАКРОПРОЦЕССОР SYSTEM/370
4.4.2. МАКРОПРОЦЕССОР СИСТЕМЫ VAX
4.4.3. МАКРОПРОЦЕССОР ОБЩЕГО НАЗНАЧЕНИЯ РМ
УПРАЖНЕНИЯ
ГЛАВА 5. КОМПИЛЯТОРЫ
5.1. ОСНОВНЫЕ ФУНКЦИИ КОМПИЛЯТОРА
5.1.1. ГРАММАТИКИ
5.1.2. ЛЕКСИЧЕСКИЙ АНАЛИЗ
5.1.3. СИНТАКСИЧЕСКИЙ АНАЛИЗ
5.1.4. ГЕНЕРАЦИЯ КОДА
5.2. МАШИННО-ЗАВИСИМЫЕ ОСОБЕННОСТИ КОМПИЛЯТОРОВ
5.2.1. ПРОМЕЖУТОЧНАЯ ФОРМА ПРЕДСТАВЛЕНИЯ ПРОГРАММЫ
5.2.2. МАШИННО-ЗАВИСИМАЯ ОПТИМИЗАЦИЯ КОДА
5.3. МАШИННО-НЕЗАВИСИМЫЕ ОСОБЕННОСТИ КОМПИЛЯТОРОВ
5.3.1. РАСПРЕДЕЛЕНИЕ ПАМЯТИ
5.3.2. СТРУКТУРИРОВАННЫЕ ПЕРЕМЕННЫЕ
5.3.3. МАШИННО-НЕЗАВИСИМАЯ ОПТИМИЗАЦИЯ КОДА
5.3.4. БЛОЧНО-СТРУКТУРИРОВАННЫЕ ЯЗЫКИ
5.4. ВАРИАНТЫ ПОСТРОЕНИЯ КОМПИЛЯТОРОВ
5.4.1. РАЗБИЕНИЕ НА ОТДЕЛЬНЫЕ ПРОСМОТРЫ
5.4.2. ИНТЕРПРЕТАТОРЫ
5.4.3. КОМПИЛЯТОРЫ НА Р-КОД
5.4.4. КОМПИЛЯТОРЫ КОМПИЛЯТОРОВ
5.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
5.5.1. КОМПИЛЯТОР ETH PASCAL
5.5.2. КОМПИЛЯТОР UCSD PASCAL
5.5.3. КОМПИЛЯТОР FORTRAN H ФИРМЫ IBM
5.5.4. КОМПИЛЯТОР КОМПИЛЯТОРОВ YACC
УПРАЖНЕНИЯ
ГЛАВА 6. ОПЕРАЦИОННЫЕ СИСТЕМЫ
6.1. ОСНОВНЫЕ ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ
6.1.1. ТИПЫ ОПЕРАЦИОННЫХ СИСТЕМ
6.1.2. ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
6.1.3. ОПЕРАЦИОННОЕ ОКРУЖЕНИЕ
6.2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ
6.2.1. ОБРАБОТКА ПРЕРЫВАНИЙ
6.2.2. ПЛАНИРОВАНИЕ ПРОЦЕССОВ
6.2.3. ОБСЛУЖИВАНИЕ ВВОДА-ВЫВОДА
6.2.4. УПРАВЛЕНИЕ РЕАЛЬНОЙ ПАМЯТЬЮ
6.2.5. УПРАВЛЕНИЕ ВИРТУАЛЬНОЙ ПАМЯТЬЮ
6.3. МАШИННО-НЕЗАВИСИМЫЕ СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ
6.3.1. РАБОТА С ФАЙЛАМИ
6.3.2. ПЛАНИРОВАНИЕ ЗАДАНИЙ
6.3.3. РАСПРЕДЕЛЕНИЕ РЕСУРСОВ
6.3.4. ЗАЩИТА
6.4. СПОСОБЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ
6.4.1. ИЕРАРХИЧЕСКАЯ СТРУКТУРА
6.4.2. ВИРТУАЛЬНЫЕ МАШИНЫ
6.4.3. МУЛЬТИПРОЦЕССОРНЫЕ СИСТЕМЫ
6.5. ПРИМЕРЫ РЕАЛИЗАЦИЙ
6.5.1. СИСТЕМА UCSD PASCAL
6.5.2. UNIX
6.5.3. NOS
6.5.4. VAX/VMS
6.5.5. VM/370
УПРАЖНЕНИЯ
ГЛАВА 7. ДРУГИЕ КОМПОНЕНТЫ СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7.1. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
7.1.1. ОСНОВНЫЕ КОНЦЕПЦИИ СУБД
7.1.2. УРОВНИ ОПИСАНИЯ ДАННЫХ
7.1.3. ИСПОЛЬЗОВАНИЕ СУБД
7.2. ТЕКСТОВЫЕ РЕДАКТОРЫ
7.2.1. ОПИСАНИЕ ПРОЦЕССА РЕДАКТИРОВАНИЯ
7.2.2. ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
7.2.3. СТРУКТУРА РЕДАКТОРА
7.3. СИСТЕМЫ ИНТЕРАКТИВНОЙ ОТЛАДКИ
7.3.1. ФУНКЦИИ И ВОЗМОЖНОСТИ ОТЛАДЧИКОВ
7.3.2. ВЗАИМОДЕЙСТВИЕ С ДРУГИМИ ЭЛЕМЕНТАМИ СИСТЕМЫ
7.3 3. ТРЕБОВАНИЯ, ПРЕДЪЯВЛЯЕМЫЕ К ИНТЕРФЕЙСУ ПОЛЬЗОВАТЕЛЯ
ЛИТЕРАТУРА
***
ЗАМЕЧАНИЯ
Можно видеть, что автор лукавит: наиболее подробно расписаны простые части программных инструментов, те, которые сводятся к нудным перерасчетам различных таблиц. Работе, которую компьютер легко выполняет за человека. Системное программирование начинает выглядеть вещью в себе - программирование ради программирования.
***
Забавно, как ухищрения простейших ассемблеров по избежанию чисто технических проблем со временем превратились в "парадигмы и паттерны" языков высокого уровня.
***
Перечитывая упражнения этой книги, пытался вспомнить, выполнял ли я их, когда читал эту книгу в те времена? Некоторые - точно выполнял. Но даже, если я тогда что и пропустил, мне неоднократно приходилось решать схожие задачи в последующем, причем, совершенно необязательно, чтобы при именно системном программировании. Так что, приведенные в книге приемы - тоже самое для компьютерщика, что азы владения гаечным ключом и паяльником для создателей "железных умных машин". (Поэтому программисты-системщики всегда и издевались над программистами-пользователями).
Их книг Растригина не вполне ясно, насколько трудно перейти от управления ячейками к искусственному интеллекту. (Более короткий способ приручения компьютера, в обход всех этих общепринятых инструментов, мы уже рассматривали в ТЕМА #3, АБЗАЦ #222).
Л.БЕК
ВВЕДЕНИЕ В СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
М.: "МИР", 1988
(На эту книгу я уже ссылался - ТЕМА #15, АБЗАЦ #386. Кто еще не заметил, весь этот раздел - это развитие того абзаца).
ОТ РЕДАКТОРА ПЕРЕВОДА
ПРЕДИСЛОВИЕ
(Эти части я опустил, т.к. они способны напугать новичка. Книга гораздо проще, чем это пытаются показать автор и переводчики).
ГЛАВА 1. ОСНОВНЫЕ ПОНЯТИЯ
1.1. ВВЕДЕНИЕ
1.2. СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И СТРУКТУРА ЭВМ
1.3. УПРОЩЕННАЯ УЧЕБНАЯ МАШИНА (УУМ)
1.3.1. СТРУКТУРА УУМ
1.3.2. СТРУКТУРА УУМ/ДС
1.4. СТРУКТУРА SYSTEM/370
1.5. СТРУКТУРА ЭВМ VAX
1.6. СТРУКТУРА ЭВМ CYBER
ГЛАВА 2. АССЕМБЛЕРЫ
2.1. ОСНОВНЫЕ ФУНКЦИИ АССЕМБЛЕРА
2.1.1. ПРОСТОЙ АССЕМБЛЕР ДЛЯ УУМ
2.1.2. ТАБЛИЦЫ И АЛГОРИТМЫ АССЕМБЛЕРА
2.2. МАШИННО-ЗАВИСИМЫЕ ХАРАКТЕРИСТИКИ АССЕМБЛЕРА
2.2.1. ФОРМАТЫ КОМАНД И СПОСОБЫ АДРЕСАЦИИ
2.2.2. ПЕРЕМЕЩЕНИЕ ПРОГРАММ
2.3. МАШИННО-НЕЗАВИСИМЫЕ ХАРАКТЕРИСТИКИ АССЕМБЛЕРА
2.3.1. ЛИТЕРАЛЫ
2.3.2. СРЕДСТВА ОПРЕДЕЛЕНИЯ ИМЕН
2.3.3. ВЫРАЖЕНИЯ
2.3.4. ПРОГРАММНЫЕ БЛОКИ
2.3.5. УПРАВЛЯЮЩИЕ СЕКЦИИ И СВЯЗЫВАНИЕ ПРОГРАММ
2.4. ВАРИАНТЫ ПОСТРОЕНИЯ АССЕМБЛЕРОВ
2.4.1. ДВУХПРОСМОТРОВЫЙ АССЕМБЛЕР С ОВЕРЛЕЙНОЙ СТРУКТУРОЙ
2.4.2. ОДНОПРОСМОТРОВЫЕ АССЕМБЛЕРЫ
2.4.3. МНОГОПРОСМОТРОВЫЕ АССЕМБЛЕРЫ
2.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
2.5.1. АССЕМБЛЕР SYSTEM/370
2.5.2. АССЕМБЛЕР ЭВМ VAX
2.5.3. АССЕМБЛЕР ЭВМ CYBER
УПРАЖНЕНИЯ
ГЛАВА 3. ЗАГРУЗЧИКИ И ПРОГРАММЫ СВЯЗЫВАНИЯ
3.1. ОСНОВНЫЕ ФУНКЦИИ ЗАГРУЗЧИКА
3.2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА ЗАГРУЗЧИКОВ
3.2.1. ПЕРЕМЕЩЕНИЕ
3.2.2. СВЯЗЫВАНИЕ ПРОГРАММ
3.2.3. ТАБЛИЦЫ И АЛГОРИТМЫ СВЯЗЫВАЮЩЕГО ЗАГРУЗЧИКА
3.3. МАШИННО-НЕЗАВИСИМЫЕ СВОЙСТВА ЗАГРУЗЧИКОВ
3.3.1. АВТОМАТИЧЕСКИЙ ПОИСК В БИБЛИОТЕКАХ
3.3.2. УПРАВЛЕНИЕ ПРОЦЕССОМ ЗАГРУЗКИ
3.3.3. ОВЕРЛЕЙНАЯ СТРУКТУРА ПРОГРАММ
3.4. ВАРИАНТЫ ПОСТРОЕНИЯ ЗАГРУЗЧИКОВ
3.4.1. РЕДАКТОРЫ СВЯЗЕЙ
3.4.2. ДИНАМИЧЕСКОЕ СВЯЗЫВАНИЕ
3.4.3. РАСКРУЧИВАЮЩИЕ ЗАГРУЗЧИКИ
3.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
3.5.1. РЕДАКТОР СВЯЗЕЙ SYSTEM/370
3.5.2. ПРОГРАММА СВЯЗЫВАНИЯ ЭВМ VAX
3.5.3. ЗАГРУЗЧИК ЭВМ CYBER
УПРАЖНЕНИЯ
ГЛАВА 4. МАКРОПРОЦЕССОРЫ
4.1. ОСНОВНЫЕ ФУНКЦИИ МАКРОПРОЦЕССОРОВ
4.1.1. МАКРООПРЕДЕЛЕНИЯ И МИКРОРАСШИРЕНИЯ
4.1.2. МАКРОПРОЦЕССОР. ТАБЛИЦЫ И ЛОГИКА
4.2. МАШИННО-НЕЗАВИСИМЫЕ ОСОБЕННОСТИ МАКРОПРОЦЕССОРА
4.2.1. КОНКАТЕНАЦИЯ МАКРОПАРАМЕТРОВ
4.2.2. ГЕНЕРАЦИЯ УНИКАЛЬНЫХ МЕТОК
4.2.3. УСЛОВНЫЕ МАКРОРАСШИРЕНИЯ
4.2.4. КЛЮЧЕВЫЕ МАКРОПАРАМЕТРЫ
4.3. ВАРИАНТЫ ПОСТРОЕНИЯ МАКРОПРОЦЕССОРОВ
4.3.1. РЕКУРСИВНАЯ МАКРОГЕНЕРАЦИЯ
4.3.2. МАКРОПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ
4.3.3. МАКРОПРОЦЕССОРЫ, ВСТРОЕННЫЕ В ТРАНСЛЯТОРЫ 4.4. ПРИМЕРЫ РЕАЛИЗАЦИИ
4.4.1. МАКРОПРОЦЕССОР SYSTEM/370
4.4.2. МАКРОПРОЦЕССОР СИСТЕМЫ VAX
4.4.3. МАКРОПРОЦЕССОР ОБЩЕГО НАЗНАЧЕНИЯ РМ
УПРАЖНЕНИЯ
ГЛАВА 5. КОМПИЛЯТОРЫ
5.1. ОСНОВНЫЕ ФУНКЦИИ КОМПИЛЯТОРА
5.1.1. ГРАММАТИКИ
5.1.2. ЛЕКСИЧЕСКИЙ АНАЛИЗ
5.1.3. СИНТАКСИЧЕСКИЙ АНАЛИЗ
5.1.4. ГЕНЕРАЦИЯ КОДА
5.2. МАШИННО-ЗАВИСИМЫЕ ОСОБЕННОСТИ КОМПИЛЯТОРОВ
5.2.1. ПРОМЕЖУТОЧНАЯ ФОРМА ПРЕДСТАВЛЕНИЯ ПРОГРАММЫ
5.2.2. МАШИННО-ЗАВИСИМАЯ ОПТИМИЗАЦИЯ КОДА
5.3. МАШИННО-НЕЗАВИСИМЫЕ ОСОБЕННОСТИ КОМПИЛЯТОРОВ
5.3.1. РАСПРЕДЕЛЕНИЕ ПАМЯТИ
5.3.2. СТРУКТУРИРОВАННЫЕ ПЕРЕМЕННЫЕ
5.3.3. МАШИННО-НЕЗАВИСИМАЯ ОПТИМИЗАЦИЯ КОДА
5.3.4. БЛОЧНО-СТРУКТУРИРОВАННЫЕ ЯЗЫКИ
5.4. ВАРИАНТЫ ПОСТРОЕНИЯ КОМПИЛЯТОРОВ
5.4.1. РАЗБИЕНИЕ НА ОТДЕЛЬНЫЕ ПРОСМОТРЫ
5.4.2. ИНТЕРПРЕТАТОРЫ
5.4.3. КОМПИЛЯТОРЫ НА Р-КОД
5.4.4. КОМПИЛЯТОРЫ КОМПИЛЯТОРОВ
5.5. ПРИМЕРЫ РЕАЛИЗАЦИИ
5.5.1. КОМПИЛЯТОР ETH PASCAL
5.5.2. КОМПИЛЯТОР UCSD PASCAL
5.5.3. КОМПИЛЯТОР FORTRAN H ФИРМЫ IBM
5.5.4. КОМПИЛЯТОР КОМПИЛЯТОРОВ YACC
УПРАЖНЕНИЯ
ГЛАВА 6. ОПЕРАЦИОННЫЕ СИСТЕМЫ
6.1. ОСНОВНЫЕ ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ
6.1.1. ТИПЫ ОПЕРАЦИОННЫХ СИСТЕМ
6.1.2. ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
6.1.3. ОПЕРАЦИОННОЕ ОКРУЖЕНИЕ
6.2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ
6.2.1. ОБРАБОТКА ПРЕРЫВАНИЙ
6.2.2. ПЛАНИРОВАНИЕ ПРОЦЕССОВ
6.2.3. ОБСЛУЖИВАНИЕ ВВОДА-ВЫВОДА
6.2.4. УПРАВЛЕНИЕ РЕАЛЬНОЙ ПАМЯТЬЮ
6.2.5. УПРАВЛЕНИЕ ВИРТУАЛЬНОЙ ПАМЯТЬЮ
6.3. МАШИННО-НЕЗАВИСИМЫЕ СВОЙСТВА ОПЕРАЦИОННЫХ СИСТЕМ
6.3.1. РАБОТА С ФАЙЛАМИ
6.3.2. ПЛАНИРОВАНИЕ ЗАДАНИЙ
6.3.3. РАСПРЕДЕЛЕНИЕ РЕСУРСОВ
6.3.4. ЗАЩИТА
6.4. СПОСОБЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ
6.4.1. ИЕРАРХИЧЕСКАЯ СТРУКТУРА
6.4.2. ВИРТУАЛЬНЫЕ МАШИНЫ
6.4.3. МУЛЬТИПРОЦЕССОРНЫЕ СИСТЕМЫ
6.5. ПРИМЕРЫ РЕАЛИЗАЦИЙ
6.5.1. СИСТЕМА UCSD PASCAL
6.5.2. UNIX
6.5.3. NOS
6.5.4. VAX/VMS
6.5.5. VM/370
УПРАЖНЕНИЯ
ГЛАВА 7. ДРУГИЕ КОМПОНЕНТЫ СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7.1. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
7.1.1. ОСНОВНЫЕ КОНЦЕПЦИИ СУБД
7.1.2. УРОВНИ ОПИСАНИЯ ДАННЫХ
7.1.3. ИСПОЛЬЗОВАНИЕ СУБД
7.2. ТЕКСТОВЫЕ РЕДАКТОРЫ
7.2.1. ОПИСАНИЕ ПРОЦЕССА РЕДАКТИРОВАНИЯ
7.2.2. ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
7.2.3. СТРУКТУРА РЕДАКТОРА
7.3. СИСТЕМЫ ИНТЕРАКТИВНОЙ ОТЛАДКИ
7.3.1. ФУНКЦИИ И ВОЗМОЖНОСТИ ОТЛАДЧИКОВ
7.3.2. ВЗАИМОДЕЙСТВИЕ С ДРУГИМИ ЭЛЕМЕНТАМИ СИСТЕМЫ
7.3 3. ТРЕБОВАНИЯ, ПРЕДЪЯВЛЯЕМЫЕ К ИНТЕРФЕЙСУ ПОЛЬЗОВАТЕЛЯ
ЛИТЕРАТУРА
***
ЗАМЕЧАНИЯ
Можно видеть, что автор лукавит: наиболее подробно расписаны простые части программных инструментов, те, которые сводятся к нудным перерасчетам различных таблиц. Работе, которую компьютер легко выполняет за человека. Системное программирование начинает выглядеть вещью в себе - программирование ради программирования.
***
Забавно, как ухищрения простейших ассемблеров по избежанию чисто технических проблем со временем превратились в "парадигмы и паттерны" языков высокого уровня.
***
Перечитывая упражнения этой книги, пытался вспомнить, выполнял ли я их, когда читал эту книгу в те времена? Некоторые - точно выполнял. Но даже, если я тогда что и пропустил, мне неоднократно приходилось решать схожие задачи в последующем, причем, совершенно необязательно, чтобы при именно системном программировании. Так что, приведенные в книге приемы - тоже самое для компьютерщика, что азы владения гаечным ключом и паяльником для создателей "железных умных машин". (Поэтому программисты-системщики всегда и издевались над программистами-пользователями).
Последний раз редактировалось: Gudleifr (Ср Июл 12, 2023 2:48 pm), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
В следующей книге можно посмотреть, что еще запрограммировать на ЭВМ, кроме своих программистских инструментов. Особенно полезны приведенные там оценки трудоемкости упражнений, дающие представление о том, "что почем" в программировании.
В книге, за давностью лет, разумеется, нет никаких задач на компьютерную графику и работу в сети. Простейшие примеры рисования можно посмотреть в моих "Заметках", а все, что сложнее, сводится к простому обращению к неким "рисовательным машинам" (столь же технически интересным, как рассмотренные нами "умные машины", но гораздо более сложным - включая имеющиеся внутри них специализированные ЭВМ). Плюс, для правильного рисования надо знать кое-какую математику.
О программировании сетей можно судить, проводя параллели с описаниями операционных систем у Растригина и описаниями их внутренностей - у Бека. Растригин описал сети достаточно понятно. И работают операции обмена с другими машинами аналогично операциям обмена между частями одной машины. В некоторых операционных системах все совсем просто - внешние операции просто неотличимы от внутренних: безразлично, где расположен файл или запущена программа Но, опять, необходима некоторая математика, позволяющая избежать зацикливаний, подвисаний и нарушений.
Некоторые примеры "умных машин" можно посмотреть в статьях, которые я надергал из "Зарубежного военного обозрения" для раздела "Игровые автоматы".
Ч.УЭЗЕРЕЛЛ
ЭТЮДЫ ДЛЯ ПРОГРАММИСТОВ
М.: "МИР", 1982
(И на эту книгу я уже ссылался в "том" абзаце - ТЕМА #15, АБЗАЦ #386).
А ВЫ НОКТЮРН СЫГРАТЬ МОГЛИ БЫ? ИЛИ ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
(Предисловие Ю.Баяковского - опять какая-то пугалка. Пропускаю).
ПРЕДИСЛОВИЕ
1. ЧТО БЫ ЭТО ЗНАЧИЛО? ИЛИ КАК ЧИТАТЬ КНИГУ
2. ЖИЗНЬ ДИКТУЕТ СВОИ ЗАКОНЫ, ИЛИ КЛЕТОЧНЫЕ АВТОМАТЫ И МАШИННАЯ ГРАФИКА
3. ПАПОЧКА, А ПОЧЕМУ МОРЕ СИНЕЕ? ИЛИ РАСКРАШИВАНИЕ КАРТЫ МЕТОДОМ ИСЧЕРПЫВАЮЩЕГО ПОИСКА
4. ПЕЧАТНИК-ПОДМАСТЕРЬЕ, ИЛИ АВТОМАТИЧЕСКОЕ ФОРМАТИРОВАНИЕ ТЕКСТА
5. ПОБЕДИТЕЛЕЙ СУДЯТ, ИЛИ СОСТАВЛЕНИЕ И ОЦЕНКА ТУРНИРА
6. ФИНАНСОВЫЕ ВОРОТИЛЫ, ИЛИ УПРАВЛЕНИЕ ПРЕДПРИЯТИЯМИ И МАШИННОЕ МОДЕЛИРОВАНИЕ
7. КРИСС-КРОСС, ИЛИ ЭВРИСТИЧЕСКОЕ СОСТАВЛЕНИЕ ГОЛОВОЛОМКИ
8. ТЕЗЕЙ, ИЛИ АВТОМАТИЧЕСКОЕ ПОСТРОЕНИЕ ЛАБИРИНТОВ
9. ПОЗНАЙ САМОГО СЕБЯ, ИЛИ ПРОГРАММА, ПЕЧАТАЮЩАЯ СОБСТВЕННЫЙ ИСХОДНЫЙ ТЕКСТ
10. НЕ ПРЯЧЬТЕ ВАШИ ДЕНЕЖКИ, ИЛИ РАСЧЕТ ДОХОДА ОТ ВЛОЖЕННОГО КАПИТАЛА
11. МЕНЬШЕ СОРУ - МЕНЬШЕ И ВЗДОРУ, ИЛИ ИЗБЫТОЧНОСТЬ ТЕКСТА И СЖАТИЕ ФАЙЛА
12. В ДУХЕ ДОБРОСОСЕДСТВА, ИЛИ ДОМАШНЯЯ БУХГАЛТЕРИЯ
13. ТУР ПО ТЬЮРИНГУ, ИЛИ МОДЕЛИРОВАНИЕ МАШИНЫ ТЬЮРИНГА
14. МАШИННЫЕ ЗАБАВЫ, ИЛИ СТРАТЕГИЯ КОМПЬЮТЕРА ПРИ ИГРЕ В КАЛАХ
15. ПРОЩЕ ПРОСТОГО, ИЛИ ПОИСК УЗОРОВ ИЗ ПРОСТЫХ ЧИСЕЛ
16. ГОРЮЧИЕ СЛЕЗЫ, ИЛИ УЧЕТ РАСХОДА БЕНЗИНА
17. ТИШЕ ЕДЕШЬ - ДАЛЬШЕ БУДЕШЬ, ИЛИ МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ НА АВТОСТРАДЕ
18. ЧИТАЕМ, ПИШЕМ, СЧИТАЕМ, ИЛИ КОНСТРУИРОВАНИЕ ИНТЕРПРЕТАТОРА ФОРМАТОВ
19. ПИКОВОЕ ПОЛОЖЕНИЕ, ИЛИ СТАТИСТИКА ПАСЬЯНСОВ
20. КВАДРАТНЫЙ ТРЕХЧЛЕН, ИЛИ ПАКЕТ ДЛЯ АЛГЕБРАИЧЕСКИХ ВЫЧИСЛЕНИЙ
21. ПРЕВРАТНОЕ ОБРАТНОЕ, ИЛИ ОШИБКИ ПРИ РАБОТЕ С ПЛАВАЮЩЕЙ ТОЧКОЙ
22. ПИ-ЭР КВАДРАТ, ИЛИ АРИФМЕТИЧЕСКИЕ ВЫЧИСЛЕНИЯ С ВЫСОКОЙ ТОЧНОСТЬЮ
23. ВЕЛИКИЙ КОМБИНАТОР, ИЛИ ОПТИМАЛЬНЫЕ СТРАТЕГИИ ДЛЯ ИГРЫ С УГАДЫВАНИЕМ
24. СЕКРЕТ ФИРМЫ, ИЛИ МАТЕМАТИЧЕСКИЙ ПОДХОД К РАСКРЫТИЮ ШИФРОВ
ТЕМЫ ДЛЯ КУРСА ПО КОМПИЛЯТОРАМ
25. УЧА - УЧИМСЯ, ИЛИ МОДЕЛИРОВАНИЕ БОЛЬШОГО КОМПЬЮТЕРА
26. ПИЩА ДЛЯ УМА, ИЛИ СВЯЗЫВАЮЩИЙ ЗАГРУЗЧИК
27. МАЛ ЗОЛОТНИК..., ИЛИ КОМПИЛЯТОР ДЛЯ АЛГЕБРАИЧЕСКОГО ЯЗЫКА
28. НОВЫЙ АТТРАКЦИОН, ИЛИ ПОСТРОЕНИЕ ИНТЕРПРЕТАТОРА ЯЗЫКА ТРАК
РЕШЕНИЯ
29. КРАСЬТЕ С НАМИ, ИЛИ ПОЛНОЕ РЕШЕНИЕ ЗАДАЧИ
30. СЖАТЫЕ СТРОКИ, ИЛИ ПРОГРАММА УПЛОТНЕНИЯ ТЕКСТОВ
В книге, за давностью лет, разумеется, нет никаких задач на компьютерную графику и работу в сети. Простейшие примеры рисования можно посмотреть в моих "Заметках", а все, что сложнее, сводится к простому обращению к неким "рисовательным машинам" (столь же технически интересным, как рассмотренные нами "умные машины", но гораздо более сложным - включая имеющиеся внутри них специализированные ЭВМ). Плюс, для правильного рисования надо знать кое-какую математику.
О программировании сетей можно судить, проводя параллели с описаниями операционных систем у Растригина и описаниями их внутренностей - у Бека. Растригин описал сети достаточно понятно. И работают операции обмена с другими машинами аналогично операциям обмена между частями одной машины. В некоторых операционных системах все совсем просто - внешние операции просто неотличимы от внутренних: безразлично, где расположен файл или запущена программа Но, опять, необходима некоторая математика, позволяющая избежать зацикливаний, подвисаний и нарушений.
Некоторые примеры "умных машин" можно посмотреть в статьях, которые я надергал из "Зарубежного военного обозрения" для раздела "Игровые автоматы".
Ч.УЭЗЕРЕЛЛ
ЭТЮДЫ ДЛЯ ПРОГРАММИСТОВ
М.: "МИР", 1982
(И на эту книгу я уже ссылался в "том" абзаце - ТЕМА #15, АБЗАЦ #386).
А ВЫ НОКТЮРН СЫГРАТЬ МОГЛИ БЫ? ИЛИ ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
(Предисловие Ю.Баяковского - опять какая-то пугалка. Пропускаю).
ПРЕДИСЛОВИЕ
1. ЧТО БЫ ЭТО ЗНАЧИЛО? ИЛИ КАК ЧИТАТЬ КНИГУ
2. ЖИЗНЬ ДИКТУЕТ СВОИ ЗАКОНЫ, ИЛИ КЛЕТОЧНЫЕ АВТОМАТЫ И МАШИННАЯ ГРАФИКА
3. ПАПОЧКА, А ПОЧЕМУ МОРЕ СИНЕЕ? ИЛИ РАСКРАШИВАНИЕ КАРТЫ МЕТОДОМ ИСЧЕРПЫВАЮЩЕГО ПОИСКА
4. ПЕЧАТНИК-ПОДМАСТЕРЬЕ, ИЛИ АВТОМАТИЧЕСКОЕ ФОРМАТИРОВАНИЕ ТЕКСТА
5. ПОБЕДИТЕЛЕЙ СУДЯТ, ИЛИ СОСТАВЛЕНИЕ И ОЦЕНКА ТУРНИРА
6. ФИНАНСОВЫЕ ВОРОТИЛЫ, ИЛИ УПРАВЛЕНИЕ ПРЕДПРИЯТИЯМИ И МАШИННОЕ МОДЕЛИРОВАНИЕ
7. КРИСС-КРОСС, ИЛИ ЭВРИСТИЧЕСКОЕ СОСТАВЛЕНИЕ ГОЛОВОЛОМКИ
8. ТЕЗЕЙ, ИЛИ АВТОМАТИЧЕСКОЕ ПОСТРОЕНИЕ ЛАБИРИНТОВ
9. ПОЗНАЙ САМОГО СЕБЯ, ИЛИ ПРОГРАММА, ПЕЧАТАЮЩАЯ СОБСТВЕННЫЙ ИСХОДНЫЙ ТЕКСТ
10. НЕ ПРЯЧЬТЕ ВАШИ ДЕНЕЖКИ, ИЛИ РАСЧЕТ ДОХОДА ОТ ВЛОЖЕННОГО КАПИТАЛА
11. МЕНЬШЕ СОРУ - МЕНЬШЕ И ВЗДОРУ, ИЛИ ИЗБЫТОЧНОСТЬ ТЕКСТА И СЖАТИЕ ФАЙЛА
12. В ДУХЕ ДОБРОСОСЕДСТВА, ИЛИ ДОМАШНЯЯ БУХГАЛТЕРИЯ
13. ТУР ПО ТЬЮРИНГУ, ИЛИ МОДЕЛИРОВАНИЕ МАШИНЫ ТЬЮРИНГА
14. МАШИННЫЕ ЗАБАВЫ, ИЛИ СТРАТЕГИЯ КОМПЬЮТЕРА ПРИ ИГРЕ В КАЛАХ
15. ПРОЩЕ ПРОСТОГО, ИЛИ ПОИСК УЗОРОВ ИЗ ПРОСТЫХ ЧИСЕЛ
16. ГОРЮЧИЕ СЛЕЗЫ, ИЛИ УЧЕТ РАСХОДА БЕНЗИНА
17. ТИШЕ ЕДЕШЬ - ДАЛЬШЕ БУДЕШЬ, ИЛИ МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ НА АВТОСТРАДЕ
18. ЧИТАЕМ, ПИШЕМ, СЧИТАЕМ, ИЛИ КОНСТРУИРОВАНИЕ ИНТЕРПРЕТАТОРА ФОРМАТОВ
19. ПИКОВОЕ ПОЛОЖЕНИЕ, ИЛИ СТАТИСТИКА ПАСЬЯНСОВ
20. КВАДРАТНЫЙ ТРЕХЧЛЕН, ИЛИ ПАКЕТ ДЛЯ АЛГЕБРАИЧЕСКИХ ВЫЧИСЛЕНИЙ
21. ПРЕВРАТНОЕ ОБРАТНОЕ, ИЛИ ОШИБКИ ПРИ РАБОТЕ С ПЛАВАЮЩЕЙ ТОЧКОЙ
22. ПИ-ЭР КВАДРАТ, ИЛИ АРИФМЕТИЧЕСКИЕ ВЫЧИСЛЕНИЯ С ВЫСОКОЙ ТОЧНОСТЬЮ
23. ВЕЛИКИЙ КОМБИНАТОР, ИЛИ ОПТИМАЛЬНЫЕ СТРАТЕГИИ ДЛЯ ИГРЫ С УГАДЫВАНИЕМ
24. СЕКРЕТ ФИРМЫ, ИЛИ МАТЕМАТИЧЕСКИЙ ПОДХОД К РАСКРЫТИЮ ШИФРОВ
ТЕМЫ ДЛЯ КУРСА ПО КОМПИЛЯТОРАМ
25. УЧА - УЧИМСЯ, ИЛИ МОДЕЛИРОВАНИЕ БОЛЬШОГО КОМПЬЮТЕРА
26. ПИЩА ДЛЯ УМА, ИЛИ СВЯЗЫВАЮЩИЙ ЗАГРУЗЧИК
27. МАЛ ЗОЛОТНИК..., ИЛИ КОМПИЛЯТОР ДЛЯ АЛГЕБРАИЧЕСКОГО ЯЗЫКА
28. НОВЫЙ АТТРАКЦИОН, ИЛИ ПОСТРОЕНИЕ ИНТЕРПРЕТАТОРА ЯЗЫКА ТРАК
РЕШЕНИЯ
29. КРАСЬТЕ С НАМИ, ИЛИ ПОЛНОЕ РЕШЕНИЕ ЗАДАЧИ
30. СЖАТЫЕ СТРОКИ, ИЛИ ПРОГРАММА УПЛОТНЕНИЯ ТЕКСТОВ
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Итак. На смену электромеханическим "умным машинам" 30-х пришли "программные" 80-х, живущие только в памяти компьютеров, но не ставшие от этого менее интересными/полезными/могущественными. Как это выглядело в итоге? Что из того, о чем мечтали изобретатели ГОЛЕМОВ, вошло в обязательный набор пользователя? Насколько пользователь мог с этим управляться?
В.М.БРЯБРИН
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ ЭВМ
М.: "НАУКА". 1990
(Опять - в "том" абзаце. ТЕМА #15, АБЗАЦ #386).
Несмотря на древность этого издания, повторю: эту книгу надо штудировать очень внимательно. Ведь там описано, как на самом деле устроено то, что скрывается под красивой картинкой экрана. И для того, чтобы сделать на вашем суперсовременном и суперперсональном компьютере хоть что-то полезное, придется разгребать окошки в поисках тех самых древних инструментов (или их аналогов).
ПРЕДИСЛОВИЕ
ГЛАВА 1. ОПЕРАЦИОННЫЕ СИСТЕМЫ
1.1. ОПЕРАЦИОННАЯ СИСТЕМА - "ПРОГРАММНАЯ ОБОЛОЧКА" АППАРАТНЫХ СРЕДСТВ ПЭВМ
1.2. ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА CP/M
1.3. ОСНОВНЫЕ СВОЙСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS (ДОС)
1.4. ДРУГИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ
ГЛАВА 2. КАК РАБОТАТЬ НА ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ - НЕСКОЛЬКО УРОКОВ
2.1. ОСНОВНЫЕ ПОНЯТИЯ И ОБОЗНАЧЕНИЯ
2.2. ПЕРВЫЕ ШАГИ
2.3. ПУТЕШЕСТВИЕ ПО ФАЙЛОВОЙ СИСТЕМЕ
2.4. КОПИРОВАНИЕ, УДАЛЕНИЕ, РАСПЕЧАТКА ФАЙЛОВ
2.5. ПРОГРАММЫ В МАШИННОМ КОДЕ И КОМАНДНЫЕ ФАЙЛЫ
2.6. РАЗВИТЫЕ КОМАНДНЫЕ ФАЙЛЫ
2.7. КОНФИГУРИРОВАНИЕ СИСТЕМЫ
2.8. ПОВТОРЕНЬЕ - МАТЬ УЧЕНЬЯ
ГЛАВА 3. СТРУКТУРА И ФУНКЦИИ ДОС
3.1. ОСНОВНЫЕ МОДУЛИ ДОС
3.2. БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА
3.3. БЛОК НАЧАЛЬНОЙ ЗАГРУЗКИ
3.4. МОДУЛЬ РАСШИРЕНИЯ БАЗОВОЙ СИСТЕМЫ ВВОДА/ВЫВОДА
3.5. МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЙ ДОС
3.6. КОМАНДНЫЙ ПРОЦЕССОР
3.7. УТИЛИТЫ ДОС
ГЛАВА 4. ИСКУССТВО УПРАВЛЕНИЯ ПЕРСОНАЛЬНЫМ КОМПЬЮТЕРОМ.
4.1. УПРАВЛЕНИЕ ДИСПЛЕЕМ
4.2. УПРАВЛЕНИЕ ВВОДОМ С КЛАВИАТУРЫ
4.3. УПРАВЛЕНИЕ ПРИНТЕРОМ
4.4. ИНСТРУМЕНТАЛЬНЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
4.5. ОСОБЕННОСТИ РАЗРАБОТКИ ПРИКЛАДНЫХ СИСТЕМ
4.5.1. СТРУКТУРИРОВАНИЕ ПРОГРАММ НА УРОВНЕ ТЕКСТОВЫХ МОДУЛЕЙ
4.5.2. РАЗДЕЛЬНО КОМПИЛИРУЕМЫЕ МОДУЛИ Н БИБЛИОТЕКИ ПРОЦЕДУР
4.5.3. ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ И ЗАГРУЗОЧНЫХ ФАЙЛОВ
4.5.4. БИБЛИОТЕКИ ОБЪЕКТНЫХ МОДУЛЕЙ
4.5.5. РЕАЛИЗАЦИЯ СЕГМЕНТИРОВАННЫХ ПРОГРАММ С "ПЕРЕКРЫТИЯМИ"
4.6. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОГРАММ
4.6.1. ВЗАИМОДЕЙСТВИЕ ПРОГРАММ ЧЕРЕЗ ПРЕРЫВАНИЯ ДОС
4.6.2. ВЗАИМОДЕЙСТВИЕ С ПРОГРАММАМИ НА ЯЗЫКЕ АССЕМБЛЕРА
4.6.3. РЕЗИДЕНТНЫЕ ПРОГРАММЫ
4.6.4. СВЯЗЫВАНИЕ ПРОГРАММ ЧЕРЕЗ ПОТОКИ ВВОДЕ/ВЫВОДА
ГЛАВА 5. ПРИКЛАДНЫЕ СИСТЕМЫ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
5.1. АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО НА ОСНОВЕ ПЭВМ
5.2. ПЕРСОНАЛЬНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА
5.3. ИНТЕГРИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
5.4. СИСТЕМЫ ПОДГОТОВКИ ТЕКСТОВ
5.5. СИСТЕМЫ МАШИННОЙ ГРАФИКИ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
5.6. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
5.7. ОБУЧАЮЩИЕ СИСТЕМЫ
СПИСОК ЛИТЕРАТУРЫ
ЗАМЕЧАНИЯ
Заметьте, системщики сразу заподозрили недоброе:
Можно видеть, что к 90-м основным тормозящим элементом системы "Человек-компьютер" стал именно человек. Даже те слабые возможности, которые смог предоставить компьютер, не могли быть освоены с пользой для дела. Поэтому основным направлением компьютеризации (чему, в общем, и посвящена данная книга) стало изобретение "единой системы", которая бы позволила единообразно решать все задачи применения компьютеров, независимо от практической области. На смену инженеру, который прицеплял компьютер, как деталь к своей машине, пришел компьютерщик, не умеющий ничего, но не умеющий это компьютерно, по всем законам программистских стандартов.
***
Концовка умилила:
В.М.БРЯБРИН
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ ЭВМ
М.: "НАУКА". 1990
(Опять - в "том" абзаце. ТЕМА #15, АБЗАЦ #386).
Несмотря на древность этого издания, повторю: эту книгу надо штудировать очень внимательно. Ведь там описано, как на самом деле устроено то, что скрывается под красивой картинкой экрана. И для того, чтобы сделать на вашем суперсовременном и суперперсональном компьютере хоть что-то полезное, придется разгребать окошки в поисках тех самых древних инструментов (или их аналогов).
ПРЕДИСЛОВИЕ
ГЛАВА 1. ОПЕРАЦИОННЫЕ СИСТЕМЫ
1.1. ОПЕРАЦИОННАЯ СИСТЕМА - "ПРОГРАММНАЯ ОБОЛОЧКА" АППАРАТНЫХ СРЕДСТВ ПЭВМ
1.2. ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА CP/M
1.3. ОСНОВНЫЕ СВОЙСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS (ДОС)
1.4. ДРУГИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ
ГЛАВА 2. КАК РАБОТАТЬ НА ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ - НЕСКОЛЬКО УРОКОВ
2.1. ОСНОВНЫЕ ПОНЯТИЯ И ОБОЗНАЧЕНИЯ
2.2. ПЕРВЫЕ ШАГИ
2.3. ПУТЕШЕСТВИЕ ПО ФАЙЛОВОЙ СИСТЕМЕ
2.4. КОПИРОВАНИЕ, УДАЛЕНИЕ, РАСПЕЧАТКА ФАЙЛОВ
2.5. ПРОГРАММЫ В МАШИННОМ КОДЕ И КОМАНДНЫЕ ФАЙЛЫ
2.6. РАЗВИТЫЕ КОМАНДНЫЕ ФАЙЛЫ
2.7. КОНФИГУРИРОВАНИЕ СИСТЕМЫ
2.8. ПОВТОРЕНЬЕ - МАТЬ УЧЕНЬЯ
ГЛАВА 3. СТРУКТУРА И ФУНКЦИИ ДОС
3.1. ОСНОВНЫЕ МОДУЛИ ДОС
3.2. БАЗОВАЯ СИСТЕМА ВВОДА/ВЫВОДА
3.3. БЛОК НАЧАЛЬНОЙ ЗАГРУЗКИ
3.4. МОДУЛЬ РАСШИРЕНИЯ БАЗОВОЙ СИСТЕМЫ ВВОДА/ВЫВОДА
3.5. МОДУЛЬ ОБРАБОТКИ ПРЕРЫВАНИЙ ДОС
3.6. КОМАНДНЫЙ ПРОЦЕССОР
3.7. УТИЛИТЫ ДОС
ГЛАВА 4. ИСКУССТВО УПРАВЛЕНИЯ ПЕРСОНАЛЬНЫМ КОМПЬЮТЕРОМ.
4.1. УПРАВЛЕНИЕ ДИСПЛЕЕМ
4.2. УПРАВЛЕНИЕ ВВОДОМ С КЛАВИАТУРЫ
4.3. УПРАВЛЕНИЕ ПРИНТЕРОМ
4.4. ИНСТРУМЕНТАЛЬНЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
4.5. ОСОБЕННОСТИ РАЗРАБОТКИ ПРИКЛАДНЫХ СИСТЕМ
4.5.1. СТРУКТУРИРОВАНИЕ ПРОГРАММ НА УРОВНЕ ТЕКСТОВЫХ МОДУЛЕЙ
4.5.2. РАЗДЕЛЬНО КОМПИЛИРУЕМЫЕ МОДУЛИ Н БИБЛИОТЕКИ ПРОЦЕДУР
4.5.3. ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ И ЗАГРУЗОЧНЫХ ФАЙЛОВ
4.5.4. БИБЛИОТЕКИ ОБЪЕКТНЫХ МОДУЛЕЙ
4.5.5. РЕАЛИЗАЦИЯ СЕГМЕНТИРОВАННЫХ ПРОГРАММ С "ПЕРЕКРЫТИЯМИ"
4.6. ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОГРАММ
4.6.1. ВЗАИМОДЕЙСТВИЕ ПРОГРАММ ЧЕРЕЗ ПРЕРЫВАНИЯ ДОС
4.6.2. ВЗАИМОДЕЙСТВИЕ С ПРОГРАММАМИ НА ЯЗЫКЕ АССЕМБЛЕРА
4.6.3. РЕЗИДЕНТНЫЕ ПРОГРАММЫ
4.6.4. СВЯЗЫВАНИЕ ПРОГРАММ ЧЕРЕЗ ПОТОКИ ВВОДЕ/ВЫВОДА
ГЛАВА 5. ПРИКЛАДНЫЕ СИСТЕМЫ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
5.1. АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО НА ОСНОВЕ ПЭВМ
5.2. ПЕРСОНАЛЬНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА
5.3. ИНТЕГРИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
5.4. СИСТЕМЫ ПОДГОТОВКИ ТЕКСТОВ
5.5. СИСТЕМЫ МАШИННОЙ ГРАФИКИ НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ
5.6. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ПРИКЛАДНЫЕ СИСТЕМЫ
5.7. ОБУЧАЮЩИЕ СИСТЕМЫ
СПИСОК ЛИТЕРАТУРЫ
ЗАМЕЧАНИЯ
Заметьте, системщики сразу заподозрили недоброе:
***Наконец, особый класс составляют ОС, ориентированные главным образом на поддержку удобной работы конечных пользователей. Такие системы имеют развитые средства поддержки диалога, использующие графику, дисплейные окна, специальные манипуляторы ("мышь", "джойстик") для выбора объектов и операций над ними. Эти возможности, однако, мало что дают для разработки программ в рамках таких операционных систем. Программирование в ОС этого типа, конечно, тоже доступно с использованием соответствующих трансляторов, однако в этом случае программист не получает никаких преимуществ для своей работы, скорее, наоборот: его работа замедляется из-за необходимости производить несвойственные манипуляции с графическими объектами вместо использования привычных большинству программистов текстовых команд, а также из-за того, что довольно значительные ресурсы - оперативная память и время микропроцессора - расходуются на поддержку удобного интерфейса, в котором системный программист не испытывает большой нужды.
Можно видеть, что к 90-м основным тормозящим элементом системы "Человек-компьютер" стал именно человек. Даже те слабые возможности, которые смог предоставить компьютер, не могли быть освоены с пользой для дела. Поэтому основным направлением компьютеризации (чему, в общем, и посвящена данная книга) стало изобретение "единой системы", которая бы позволила единообразно решать все задачи применения компьютеров, независимо от практической области. На смену инженеру, который прицеплял компьютер, как деталь к своей машине, пришел компьютерщик, не умеющий ничего, но не умеющий это компьютерно, по всем законам программистских стандартов.
***
Концовка умилила:
Т.е. и так все есть, но раз ПЭВМ все равно путается под ногами, может, он на что сгодится?Может показаться, что при обилии прикладных пакетов для ПЭВМ отпадает необходимость в разработке новых систем, поскольку почти любую задачу можно пытаться решать на основе имеющегося программного обеспечения. Однако и технические, и программные средства ПЭВМ постоянно развиваются, и эта эволюция, в свою очередь, стимулирует постановку все новых задач и создание все новых программных средств для их решения.
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Получилось, на середину 80-х в распоряжении пользователя, не говоря уже о программистах, был свой персональный(!) компьютер, на котором можно было реализовать практически все из того, о чем мы прочитали. Более того, были отработаны технологии присоединения к ПЭВМ дополнительного "железа", для своих инженерных или бытовых нужд. И... все. Пользователи сели ждать, когда программисты им все это напишут. А программисты... сели ждать, когда их снабдят подходящими системами разработки. С тех пор каждый "прорыв в программировании" связывался с появлением рекламы новой суперсистемы, которая "сама программирует".
***
Одним из первых таких прорывов (в 90-е) было появление Visual Basic (VB). Надо отметить, что он сделал для пользовательского программирования на ПЭВМ очень много. Требование от любой Windows-программы иметь правильный графический интерфейс в те времена поначалу практически парализовало программирование - к каждой простенькой задачке приходилось прикручивать сложнейшую "рисовательную машину", требующую тонкой настройки и порождающую огромное число ошибок (да еще на основании путаной и неполной документации). VB здорово выручил, взяв львиную долю рисования и разметки экрана на себя. Более того, его "рисовательная машина" оказалась столь мощной, что позволила "рисовать" и некоторые программные структуры, например хранить массивы и списки данных прямо "на экране". (Принцип "как выглядит, так и работает" был доведен до абсолюта). А для любителей "настоящих языков, а не каких-то там Бейсиков" были выпущены аналогично устроенные и "почти честные" Delphi (Pascal), Builder (C++), MS Visual Studio (C++ и др.)...
Но пользователю VB не дали. Как писано в книге D.F.Scott, Разработка прикладных систем на Visual Basic for Windows, 1994 (я приводил пример и нее в разделе FORTH ТЕМА #14, АБЗАЦ #379 и далее):
"Имеются несколько серьезных причин к тому, чтобы бизнесмены могли предпочесть изготовленный на заказ при посредстве компьютерного языка набор прикладных программ готовым пакетам прикладных программ:
- Задачи, стоящие перед бизнесом, не могут быть адекватно автоматизированы готовыми пакетами программного обеспечения.
- Задачи, стоящие перед людьми, работающими в офисе, подвержены непрерывным переменам, адаптациям, изменениям. Когда меняется фронт работ, программы должны также измениться.
- Люди, недостаточно подготовленные для того, чтобы использовать компьютер, используют готовый пакет прикладных программ едва ли на десятую долю его возможностей, оставляя себе широкие возможности "профессионального роста", но время, затрачиваемое на обучение, может превысить время, которое займет работа. Электронные таблицы и другие пакеты программ предполагают, что пользователи - инженеры-математики и предполагается, что они сами проделают адаптацию пакета к собственным потребностям.
- Корпорация, стремясь иметь преимущества в конкурентной борьбе, может хотеть использовать программное обеспечение, которое является ее исключительной собственностью.
- Если корпорация решила использовать секретные деловые стратегии, ничто не заставит ее использовать программное обеспечение массового рынка, применяемое конкурентами.
- Компании, которые имеют дело со специфическими заказчиками, требуют гибких систем программного обеспечения. Готовое программное обеспечение имеет тенденцию к тому, чтобы предлагать пользователю адаптировать свои рабочие процессы к пакету, а не наоборот".
Т.е. все не "инженеры-математики" сразу записываются в "непрограммирующие пользователи" (по Растригину), а "программистам" автор на пальцах(!) начинает объяснять, что такое файл, флаговая переменная, ключевое поле таблицы Базы Данных...
***
P.S. Сейчас (1921-й год) "программисты" почти отчаялись дождаться квантовых компьютеров, которые "могут посчитать ВСЕ", и начали ждать "нейронные сети", которые сами себя обучают для решения ЛЮБЫХ задач. И по-прежнему верят, что "где-там" есть настоящие программисты с миллионными зарплатами, которые умеют программировать суперсистемы.
P.P.S. За бортом этой библиотеки остались конкретные описания конкретных современных систем и вся математика. О конкретике не беспокойтесь - жизнь научит, а математики будет больше чем достаточно, если Вы посмотрите упомянутые авторами ссылки.
P.P.P.S. Как объяснить постиндустриальному человеку, что такое элекромеханика? Зачем надо было дорабатывать андроидов напильником, если можно было по сотовому заказать доставку нового прямо из Китая?
***
Одним из первых таких прорывов (в 90-е) было появление Visual Basic (VB). Надо отметить, что он сделал для пользовательского программирования на ПЭВМ очень много. Требование от любой Windows-программы иметь правильный графический интерфейс в те времена поначалу практически парализовало программирование - к каждой простенькой задачке приходилось прикручивать сложнейшую "рисовательную машину", требующую тонкой настройки и порождающую огромное число ошибок (да еще на основании путаной и неполной документации). VB здорово выручил, взяв львиную долю рисования и разметки экрана на себя. Более того, его "рисовательная машина" оказалась столь мощной, что позволила "рисовать" и некоторые программные структуры, например хранить массивы и списки данных прямо "на экране". (Принцип "как выглядит, так и работает" был доведен до абсолюта). А для любителей "настоящих языков, а не каких-то там Бейсиков" были выпущены аналогично устроенные и "почти честные" Delphi (Pascal), Builder (C++), MS Visual Studio (C++ и др.)...
Но пользователю VB не дали. Как писано в книге D.F.Scott, Разработка прикладных систем на Visual Basic for Windows, 1994 (я приводил пример и нее в разделе FORTH ТЕМА #14, АБЗАЦ #379 и далее):
"Имеются несколько серьезных причин к тому, чтобы бизнесмены могли предпочесть изготовленный на заказ при посредстве компьютерного языка набор прикладных программ готовым пакетам прикладных программ:
- Задачи, стоящие перед бизнесом, не могут быть адекватно автоматизированы готовыми пакетами программного обеспечения.
- Задачи, стоящие перед людьми, работающими в офисе, подвержены непрерывным переменам, адаптациям, изменениям. Когда меняется фронт работ, программы должны также измениться.
- Люди, недостаточно подготовленные для того, чтобы использовать компьютер, используют готовый пакет прикладных программ едва ли на десятую долю его возможностей, оставляя себе широкие возможности "профессионального роста", но время, затрачиваемое на обучение, может превысить время, которое займет работа. Электронные таблицы и другие пакеты программ предполагают, что пользователи - инженеры-математики и предполагается, что они сами проделают адаптацию пакета к собственным потребностям.
- Корпорация, стремясь иметь преимущества в конкурентной борьбе, может хотеть использовать программное обеспечение, которое является ее исключительной собственностью.
- Если корпорация решила использовать секретные деловые стратегии, ничто не заставит ее использовать программное обеспечение массового рынка, применяемое конкурентами.
- Компании, которые имеют дело со специфическими заказчиками, требуют гибких систем программного обеспечения. Готовое программное обеспечение имеет тенденцию к тому, чтобы предлагать пользователю адаптировать свои рабочие процессы к пакету, а не наоборот".
Т.е. все не "инженеры-математики" сразу записываются в "непрограммирующие пользователи" (по Растригину), а "программистам" автор на пальцах(!) начинает объяснять, что такое файл, флаговая переменная, ключевое поле таблицы Базы Данных...
***
P.S. Сейчас (1921-й год) "программисты" почти отчаялись дождаться квантовых компьютеров, которые "могут посчитать ВСЕ", и начали ждать "нейронные сети", которые сами себя обучают для решения ЛЮБЫХ задач. И по-прежнему верят, что "где-там" есть настоящие программисты с миллионными зарплатами, которые умеют программировать суперсистемы.
P.P.S. За бортом этой библиотеки остались конкретные описания конкретных современных систем и вся математика. О конкретике не беспокойтесь - жизнь научит, а математики будет больше чем достаточно, если Вы посмотрите упомянутые авторами ссылки.
P.P.P.S. Как объяснить постиндустриальному человеку, что такое элекромеханика? Зачем надо было дорабатывать андроидов напильником, если можно было по сотовому заказать доставку нового прямо из Китая?
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Re: Каталог секретной библиотеки
Как-то я много тут много писал о том, как заставить машину что-то сделать, но вопрос о том, как она должна думать, немного подвис. Добавлю-ка я еще одну всеми забытую книжку.
МАРВИН МИНСКИЙ
ФРЕЙМЫ ДЛЯ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
1979
PDF, 51.3Мб
МАРВИН МИНСКИЙ
ФРЕЙМЫ ДЛЯ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
1979
PDF, 51.3Мб
Gudleifr- Admin
- Сообщения : 3402
Дата регистрации : 2017-03-29
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения