Главная » Просмотр файлов » В.Ш. Кауфман - Языки программирования - концепции и принципы (1990)

В.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (1160787), страница 3

Файл №1160787 В.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (В.Ш. Кауфман - Языки программирования - концепции и принципы (1990)) 3 страницаВ.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (1160787) страница 32019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

бесспорные положения касаются, как правило, лишь конкретных ЯП. Например,

"Один из операторов в языке Паскаль - оператор присваивания. Устроен он так-

то. Служит для того-то". В хорошо известном учебнике программирования это

положение обобщено. Сказано так:"Фундаментальным действием в любом

алгоритмическом языке является присваивание, которое изменяет значение

некоторой переменной". И это уже неверно! Сейчас много внимания уделяется

так называемому функциональному программированию, аппликативным ЯП, где

присваивание не только не "фундаментальное" действие, но его вообще нет!

Значит, в области ЯП нет достаточно общих бесспорных положений? В

некотором смысле есть. Чаще не столь бесспорных, сколь заслуживающих

изучения. Правда, их общность - несколько другого характера. Примером может

служить упоминавшийся принцип однозначности. Да и приведенная фраза из

учебника - вполне бесспорное положение, если считать, что она характеризует

определенный класс ЯП, в который не попадает, скажем, язык Лисп - один из

самых "заслуженных", распространенных и в то же время перспективных. Итак,

даже если ограничиться лишь относительно бесспорными положениями, их все

равно нужно отбирать с определенных позиций, с определенной целью.

Естественная цель - стремиться принести читателю максимальную пользу. Опять

мы приходим к "угадыванию" будущих потребностей.

1.7. Зачем могут понадобиться знания о ЯП

Во-первых, каждая программа должна общаться (обмениваться информацией)

с внешним миром. Соглашения, определяющие способ общения - это язык, так что

понимание принципов построения языков - необходимая компонента грамотного

программирования. Исключительно важный компонент, потому что непосредственно

связан с внешним эффектом программы, со способом ее использования. При

разработке внешнего сопряжения своей программы программист обязан проявить

истинный профессионализм, предоставляя пользователю максимум услуг при

минимуме затрат. Особенно это важно при создании пакетов прикладных

программ, инструментальных систем, вообще любых программных изделий,

предназначенных для эксплуатации без участия автора.

Во-вторых, каждый ЯП - это своя философия, свой взгляд на деятельность

программиста, отражение определенной технологии программирования. Даже

представлений об Алголе 60, Фортране и Бейсике достаточно, чтобы

почувствовать, что имеется в виду.

Скажем, творцы Алгола (выдающиеся представители международного

сообщества ученых в области информатики под руководством Петера Наура) с

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

строгости определения и изяществу языковых конструктов. Считалось, что самое

важное в работе программиста - сформулировать алгоритм (и, возможно,

опубликовать его). Переписать программу в расчете на конкретные устройства

ввода-вывода считалось не заслуживающей особого внимания технической

деятельностью. Не привлек должного внимания авторов языка и такой

"технический" аспект программистской деятельности, как компоновка программ

из модулей.

Творцы Фортрана (сотрудники фирмы IBM во главе с Джоном Бэкусом) в

значительной степени пренебрегли строгостью и изяществом языка и со

свойственным им в ту пору (1954-1957гг.) прагматизмом уже в первых версиях

языка уделили особое внимание вводу-выводу и модульности. Но ни Фортран, ни

Алгол не рассчитаны на работу в диалоговом режиме, в отличие от Бейсика

(созданного в Дартмундском колледже первоначально для обучения студентов).

Таким образом, изучение ЯП дает знание и понимание разнообразных

подходов к программированию. Это полезно при любой программистской

деятельности.

В-третьих, понимание общих принципов и концепций, определяющих строение

и применение ЯП, позволяет легче и глубже освоить конкретный язык - основной

профессиональный инструмент программиста.

В-четвертых, и это хотелось бы подчеркнуть особо, понятия и тенденции в

области ЯП с некоторым запаздыванием (в целом полезным), довольно точно

отражают понятия и тенденции собственно программирования как науки,

искусства и ремесла (и просто области человеческой деятельности). В этом

смысле мы обсуждаем основные принципы и понятия программирования, но со

специфически языковой точки зрения.

Все, о чем было сказано до сих пор, касалось интересов потенциального

пользователя ЯП. Но читатель может оказаться и руководителем коллектива,

которому требуется оценивать и выбирать ЯП для выполнения конкретного

проекта (учитывать, скажем, затраты на освоение этого ЯП или на обмен

написанными на нем программными изделиями). Если же он станет творцом ЯП,

создателем транслятора или руководства для пользователей, то ему понадобятся

столь разнообразные знания о ЯП, что их придется извлекать целеустремленным

изучением специальной литературы. Можно надеяться дать лишь первоначальный

импульс в нужном направлении.

Конечно, предсказать, для чего именно понадобятся приобретенные знания

- сложно. Могут напрямую и вовсе не понадобиться. Но наверняка пригодится

приобретенная обсуждениями, размышлениями и упражнениями культура работы со

сложными объектами при решении сложных задач. В нашем случае - это такие

задачи, как оценка, использование, разработка и реализация ЯП.

1.8. Принцип моделирования ЯП

Было бы неправильно ставить нашей целью научить свободному владению

конкретными ЯП, пусть даже особо привлекательными или перспективными. Для

этого служат специальные учебники, упражнения и, главное, практика.

Наша задача - познакомить с важнейшими понятиями и концепциями,

помогающими оценивать, использовать, реализовывать и разрабатывать ЯП, дать

представление о направлениях и проблемах их развития. Поэтому займемся, в

основном, изучением моделей ЯП. Другими словами, при изучении ЯП будем

систематически применять принцип моделирования (как самих реальных ЯП, так и

их отдельных аспектов). Наиболее важные по тем или иным причинам ЯП или их

конструкты иногда будут рассматрены довольно подробно, но прежде всего лишь

как примеры, иллюстрирующие более общие положения.

Например, важно понимать, что с каждым ЯП связан эталонный

(абстрактный) исполнитель, в котором в свою очередь определены данные,

операции, связывание, именование, аппарат прогнозирования и контроля, а

возможно и аппарат исключений, синхронизации и защиты. Важно понимать

перечисленные термины, понимать назначение соответствующих языковых

конструктов и уметь ими пользоваться при решении практических задач. Но не

очень важно помнить наизусть все связанные с ними тонкости в конкретных ЯП.

Последнее может оказаться важным лишь тогда, когда тонкости иллюстрируют

ключевые концепции рассматриваемого ЯП. Например, жесткие правила выбора

обозначений в Бейсике непосредственно связаны с его ориентацией на

относительно небольшие программы и простоту реализации.

1.9. Пять основных позиций рассмотрения ЯП

Итак, будем считать, что целевые установки согласованы в достаточной

степени, чтобы сделать следующий шаг - приступить к систематическому

изучению нашего предмета.

И сразу вопрос - с чего начать? Легко сказать "систематическому". Но

ведь системы бывают разные. Часто начинают "снизу" - с основных конструктов,

встречающихся почти во всех существующих ЯП. Тогда мы сразу погружаемся в

мир переменных, констант, параметров, процедур, циклов и т.п. Такой путь

привлекателен хотя бы тем, что им сравнительно легко пойти. Но на этом пути

за деревьями обычно не видно леса, не удается увидеть ЯП в целом, построить

его адекватную модель.

Поэтому выберем другой путь. Постараемся взглянуть на объект нашего

изучения - ЯП - с общих позиций. Нас будут особенно интересовать

технологическая, семиотическая и авторская позиции.

Первая названа технологической потому, что отражает взгляд человека,

желающего или вынужденного пользоваться ЯП как технологическим инструментом

на каком-либо из этапов создания и использования программных изделий

(другими словами, в течение их жизненного цикла). С таким человеком

естественно объясняться в технологических терминах.

Вторая позиция названа семиотической потому, что ее можно представить

себе как позицию человека, знакомого с некоторыми знаковыми системами

(русским языком, дорожными знаками, позиционными системами счисления) и

желающего узнать, чем выделяются такие знаковые системы, как ЯП. Следует

объяснить ему это в семиотических терминах.

Третья позиция - авторская. Автор создает ЯП, делает его известным

программистской общественности, исправляет и модифицирует его с учетом

поступающих предложений и критических замечаний.

Уделим внимание и другим позициям - математической и реализаторской.

Математик понимает, что такое математическая модель изучаемого обьекта,

и желает познакомиться с математическими моделями ЯП. С ним желательно

объясняться в математических терминах.

Реализатор обеспечивает возможность пользоваться ЯП как средством

практического программирования. Другими словами, он не только создают

трансляторы, но и пишет методические руководства, обучающие и контролирующие

программы, испытывает трансляторы и т.п.

Уместно подчеркнуть, что с разных позиций мы будем рассматривать один и

тот же объект. Начнем с технологической позиции. Установим связь ЯП с

производством программных услуг.

1.10. Что такое производство программных услуг

Напомним исходные понятия, известные из общего курса программирования

компьютеров. Понятие компьютер нужно уточнить лишь в той мере, в которой

это необходимо для нашей цели. Важно, что компьютер обладает двумя

фундаментальными способностями - хранить данные и выполнять планы.

Начнем со второй способности. Назовем исполнителем всякое устройство,

способное выполнять план. Так что и компьютер, и робот, и рабочий, и

солдат, и сеть компьютеров, и коллектив института способны играть роль

исполнителя.

Всего одна фундаментальная способность - выполнять план - дает

возможность исполнителю предоставить пользователю содержательно

разнообразные услуги. Определяя конкретные планы, можно настраивать

исполнителя на предоставление конкретных услуг. Важно лишь, чтобы в плане

фигурировали задания, посильные для выбранного исполнителя. Посильные - это

значит такие, для выполнения которых у исполнителя имеются соответствующие

ресурсы.

Для компьютеров как исполнителей характерны два вида ресурсов - память

и процессор. Память реализует первую из двух названных фундаментальных

способностей - служит для хранения данных. Это пассивный ресурс. Процессор

реализует вторую из названных способностей - служит для выполнения действий,

предусмотренных в планах. Это активный ресурс. Процессор характеризуется

определенным набором допустимых действий (операций, команд). Действия из

этого набора считаются элементарными (в плане не нужно заботиться о способе

выполнения таких действий).

Две названные способности связаны - выполнение достаточно сложного

плана требует его хранения в доступной исполнителю памяти. В свою очередь,

реализация хранения требует способности выполнять план (данные нужно

размещать, перемещать, делать доступными).

План для такого исполнителя, как компьютер, должен в итоге сводиться к

указанию конечной последовательности элементарных действий. Такой план

называют программой.

Людей как исполнителей характеризует прежде всего наличие у них модели

реального мира, в достаточной степени согласованной с моделью мира у

создателя плана. Поэтому в плане для людей можно указывать цели, а не

элементарные действия.

Ресурс, существенный почти для всех реальных исполнителей - это время.

Важное свойство компьютеров как исполнителей - способность выполнять

элементарные действия исключительно быстро (порядка микросекунды на

действие). Не менее важное свойство ЭВМ - способность хранить огромные

объемы данных (в оперативной памяти - мегабайты; на внешней - практически

неограниченно).

Именно способность компьютеров выполнять весьма длинные

последовательности элементарных действий над данными любого нужного объема

за практически приемлемое время предоставляет пользователям весьма

разнообразные по содержанию услуги (развлекать, играя с ним в

интеллектуальные и (или) азартные игры, давать справки, помогать в

составлении планов, управлять самолетами и танками, поддерживать светскую

беседу).

Чтобы настроить компьютер на конкретный вид услуг, нужно снабдить его

соответствующими этому виду услуг знаниями в приемлемой для него форме.

Принципиально важный для нас факт, ставший очевидным лишь относительно

недавно (по мере расширения и развития сферы представляемых компьютерами

Характеристики

Тип файла
Документ
Размер
1,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее