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

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

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

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

намерений ими обмениваться; просто иначе достаточно крупной программы не

создать). Эту функцию языка никак нельзя игнорировать при изучении ЯП.

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

Являются ли "инструментами для планирования поведения исполнителя"

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

уличного движения, русский язык?

1.2. Метауровень

Взглянем на наши действия с позиции стороннего наблюдателя, отвлечемся

от своей роли соответственно автора и читателей на только что законченном

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

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

Чем мы занимались?

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

такое ЯП. Во-вторых, начали применять для достижения взаимопонимания метод

последовательных уточнений.

Чего мы добились и что осталось неясным? Стало яснее, что будем изучать

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

заведомо не являющиеся ЯП в соответствии с нашим определением (также

рассчитывая на общее согласие) - скажем, левая тумба письменного стола.

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

понятий) очень непросто. Осталось неясным, в частности, с какой позиции и с

какой целью мы намерены изучать ЯП.

Постараемся в первом приближении устранить эти неясности. Однако

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

протяжении всей нашей работы - ведь она не формальная, а содержательная, нас

интересуют реально существующие, возникающие на наших глазах и развивающиеся

объекты - живые ЯП. Поэтому-то и невозможно дать исчерпывающего описания ЯП

как понятия (это понятие живет вместе с нами).

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

на пути к взаимопониманию.

1.3. Модель передачи сообщения

Добиться взаимопонимания бывает очень сложно. Чтобы выделить

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

(рис. 1.1).

============= ==============

! Семантика ! Смысл ! Прагматика !

============= ! ==============

!

Отправитель ---> Сообщение ---> Адресат

!

!

==============

! Синтактика !

==============

Рис. 1.1

В этой модели выделены понятия "Отправитель" (автор, генератор

сообщения), "Адресат" (получатель, читатель, слушатель сообщения),

собственно "Сообщение" (текст, последовательность звуков), "Смысл" сообщения

(нечто обозначаемое сообщением в соответствии с правилами, известными и

отправителю, и адресату).

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

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

сопоставления таким сообщениям смысла (семантика) и правилами, регулирующими

использование сообщений (прагматика).

1.4. Классификация недоразумений

С помощью модели на рис.1.1. займемся классификацией недоразумений,

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

Автор (отправитель сообщения) может подразумевать одну структуру

сообщения, а адресат (получатель) - другую, как в классическом королевском

указе: "Казнить нельзя помиловать!". Это так называемое синтаксическое

недоразумение.

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

оттенок, а адресат выберет другой. Рассмотрим, например, фрагмент рецепта

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

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

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

наукой, что разные повара, зная один и тот же рецепт, по-разному понимают

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

станут пробовать "превратить каплю в мягкий шарик". Естественно, и

результаты у них будут разные. Это семантическое недоразумение.

Наконец, автору трудно иногда представить себе, какую интерпретацию

может придать его сообщению адресат, если у них сильно различаются

представления о мире или решаемые задачи.

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

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

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

Нетрудно привести и другие примеры синтаксических, семантических и

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

Почему же в самом начале речь пошла о взаимопонимании и о стоящих на

пути к нему преградах? В основном, по двум причинам.

Во-первых, ЯП - это инструмент для достижения взаимопонимания

(безопаснее "взаимопонимания") людей с компьютерами и между людьми по поводу

управления компьютерами. Поэтому в принципах построения, структуре, понятиях

и конструктах ЯП находят свое отражение и сущность общей проблемы

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

ее решения.

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

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

важными и при общении с компьютерами (в частности, при создании и

использовании ЯП). Кстати, в Международной организации по стандартизации ИСО

разработан документ [1], регламентирующий устройство стандартов ЯП. Он

содержит классификацию программных дефектов, полностью согласующуюся с нашей

классификацией недоразумений.

Особенно бояться синтаксических недоразумений не стоит. Они касаются

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

или письменным). В ЯП это тоже не проблема - таких недоразумений там просто

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

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

(т.е. всякий правильный текст на ЯП должен иметь единственную допустимую

структуру).

Итак, сформулирован один из принципов построения ЯП, отличающих их,

скажем, от языков естественных. Такого рода общие принципы и концепции нас и

будут интересовать в первую очередь.

Семантические недоразумения опаснее. Если, скажем, слово "язык" будет

ассоциироваться с субпродуктом, ставшим весьма редким гостем прилавка, то

недоразумение может не ограничиться пределами одной фразы. Большой язык,

свежий язык, красный язык, зеленый и голубой язык - все это может касаться и

говяжьего языка и ЯП (в конкурсе языковых проектов, ставшем одним из этапов

создания языка Ада, языки-конкуренты получили условные "цветные"

наименования; победил "зеленый" язык).

Метод борьбы с семантическими недоразумениями при человеческом общении

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

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

в свою очередь, стараться уловить оставшиеся существенные неясности,

приводить контрпримеры (объектов, соответствующих определениям, но по-

видимому не имевшихся в виду говорящим, и объектов, не соответствующих

определениям, но, скорее всего, имевшихся в виду). Этот же метод точных

определений широко используется в ЯП (определения процедур, функций и типов

в Паскале), а примеры и контрпримеры применяются, как известно, при отладке

программ.

1.5. Отступление об абстракции-конкретизации. Понятие модели

Добиваясь взаимопонимания, мы активно пользуемся аппаратом абстракции-

конкретизации (обобщения-специализации).

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

свойств тех конкретных объектов, на основе знания которых понятие создается,

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

зрения задачи, решаемой с применением этого понятия. Так, в понятии "часы"

мы обычно фиксируем лишь свойство быть "устройством, показывающим время" и

отвлекаемся от формы, структуры, цвета, материала, изготовителя и других

атрибутов конкретных часов.

Приводя пример, мы конкретизируем абстрактное понятие, "снабжая" его

второстепенными с точки зрения его сущности, но важными в конкретной

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

конкретных значениях ее параметров; у конкретного примера ЯП - Фортрана -

конкретный синтаксис и конкретная семантика.

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

"Восток", на 17 камнях. Все это немного говорит об их качестве в роли

"устройства, показывающего время", но конкретное устройство всегда обладает

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

существование лишь подчеркивает тот факт, что (абстрактное) понятие никогда

не исчерпывает конкретного объекта - оно всегда отражает лишь некоторую

точку зрения на этот объект, служит компонентой его модели, оказавшейся

удобной для решения определенной задачи. В другой ситуации, при решении

другой задачи, этот же конкретный объект может играть другую роль. Тогда и

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

модель того же самого объекта.

На "устройство, показывающее время", в известных условиях можно

предпочесть смотреть как на "украшение" и с этой точки зрения (в этой его

роли) важнее станут форма, цвет, размер, фирма, чем даже способность

правильно показывать время. На процедуру можно смотреть как на "объект,

расходующий машинные ресурсы". При такой ее роли совершенно неважно, каков

смысл выполняемых в ней действий. На ЯП иногда приходится смотреть как на

объект стандартизации, и тогда важно не столько то, каковы именно

особенности его семантики и синтаксиса, сколько то, найдется ли достаточно

много заинтересованных в тех или иных его свойствах людей и организаций.

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

точки зрения, переход по существу к другой модели объекта мешает

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

говорите, что часы "плохие", потому что некрасивые, а я говорю "хорошие",

так как отлично работают.

Способность без затруднений переходить от одной модели к другой, четко

фиксировать и легко изменять уровень рассмотрения, а также угол зрения,

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

1.6. Синтактика, семантика, прагматика

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

они связаны не только с различием точек зрения, но и целевых установок. Если

правильно разложить фразу на составляющие может помочь согласование с

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

назначения (роли), то восстановить эту роль, догадаться о ней, если об этом

не сказано явно, очень тяжело. Слишком велика неопределенность, свобода

выбора.

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

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

решения каких задач предназначены. Это хорошо знакомая всем ситуация - есть

такой стиль изложения математических результатов. Слушатель (читатель) при

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

противоречий. Пока он не понял, зачем все это нужно, он может пропустить

любую содержательную ошибку. А попробуйте понять смысл программы, если

неизвестно, для чего она написана!

Вывод очевиден - для достижения взаимопонимания необходимо, чтобы

отправитель и адресат пользовались, во-первых, одинаковыми правилами

разложения сообщения на составляющие (изучением таких правил занимается

синтактика) и, во-вторых, согласованными правилами сопоставления сообщению

смысла (такими правилами занимается семантика); в-третьих, имели

согласованные целевые установки (это предмет прагматики).

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

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

согласования наших целевых установок).

Мы намерены изложить принципы оценки, создания и использования

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

еще не устоявшаяся, быстро развивающаяся область. Поэтому нет возможности

опираться на освященный традицией опыт предшественников, а также стабильные

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

анализа или дифференциальных уравнений). Приходится рисковать и

экспериментировать.

Итак, о нашей основной цели. Она состоит в том, чтобы постараться

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

опыт, приобретенные при самостоятельной работе с конкретными ЯП.

Но не слишком ли опасна идея "правильно" ориентировать? Ведь если,

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

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

ориентация на самом деле окажется дезориентацией. Не лучше ли ограничиться

изложением бесспорных положений из области ЯП - уж они-то понадобятся

наверняка!?

К сожалению или к счастью, альтернативы у нас по сути нет. Абсолютно

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

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

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

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