Лекция 03 (лекции (2002)), страница 2

2019-09-19СтудИзба

Описание файла

Файл "Лекция 03" внутри архива находится в папке "лекции (2002)". Документ из архива "лекции (2002)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "Лекция 03"

Текст 2 страницы из документа "Лекция 03"

begin

i: integer;

proc p

i: real;

proc p1

i: integer;

begin

i:=c;

end

Здесь мы имеем три степени вложенности. Мы идем по статической цепочке вложенности. Связывание осуществляет компилятор, он смотрит на свои внутренние таблицы и, когда у нас появляется потребность изменить значение, он выкидывает старое и ставит новое.

Глядя на имя и на полный текст программы, мы всегда можем понять к чему это имя относится. Правило «одно имя – одна сущность» держится до сих пор и ослабляется только на имена функций. Существует и другой подход к определению областей видимости, а именно динамический подход.

Будем считать объявление переменной некоторым оператором. У нас есть некоторая общая таблица имен и посредством этого оператора мы просто добавляем новое имя в таблицу. Как только мы покидаем соответствующий блок, время жизни переменной у нас квазистатическое, имя переменной выкидывается из таблицы. Как происходит связывание?

Связывание происходит в момент выполнения. Если компилятор видит новое вхождение, он вставляет код, который ищет имя в динамической таблице. Если он нашел переменную, то вставляется новое значение, а если нет, то выдается сообщение об ошибке, которая может быть выдано не в момент трансляции, а только в момент выполнения программы.

Традиционные ЯП используют статические области видимости с одним исключением, когда речь идет об обработки аварийных, исключительных ситуаций. Механизм обработки исключений основан на динамической области видимости. Понятие динамической области видимости проявляется, прежде всего, в функциональных ЯП. В Лисп из интерактивных ЯП добавлено понятие переменной, но там есть связывание либо по статической области видимости, либо по динамической. При этом связывание переменная из одного блока может обращаться к переменной из другого блока. Это не возможно при статическом связывание.

Когда мы говорили про типы данных, то отмечали, что тип данных – это, прежде всего набор операций, а потом уже соответствующее множество значений. Данные и операции имеют очень близкое значение и имеют двойственную натуру. Т. е. операции и данные могут между собой перемешиваться. И вопрос, это данные или это операция, является вопросом реализации. Например, возьмем такой тип данных, как строка (String). Интересна операция, которая называется Length, она возвращает длину строки. Вот что это такое, данные или операция? Рассмотрим различные реализации этого типа данных. Это, например в Си, указатель на строку с переменной длиной. Строка имеет ноль в последнем байте. Что такое здесь Length? Мы бежим по строке, пока не наткнемся на ноль, и подсчитываем количество символов. Это, безусловно, операция. В ранних версиях Паскаля и в Delphi этот тип остался, называется он unsigned string. Он представляет из себя массив длиной до 255 байт, у которого 1-й байт – это длина. Здесь Length - это данные, мы просто возвращали 1-й байт. Правда длина строки ограничена 255 байтами, но мы можем хранить любую информацию, в том числе и нули. Надо помнить, что данные и операции, вообще, взаимозаменяемые.

Был такой язык РЕФАЛ. Возникла задача по генерации набора тестов. У нас есть грамматики, есть язык, который описывают эти грамматики. Мы пишем то ли транслятор, то ли интерпретатор с этого языка – это совсем не важно. Хочется написать средство, чтобы по описанию грамматики оно генерировало множество тестов. Для этих целей РЕФАЛ почти идеальный язык. Такая задача возникла в одной дипломной работе, но беда в том, что РЕФАЛ очень удобен для символьной обработки, но не очень удобен для численных расчетов. Любое средство по генерации тестов должно содержать что-то, что ограничивало бы набор выдаваемых тестов. Например датчик случайных чисел. Это функция, которая производит довольно нетривиальные расчеты. А РЕФАЛ был плохо предназначен для этих расчетов, в встроенной функции в ранней реализации не было. Написать датчик псевдослучайных чисел на РЕФАЛе, но по сложности эта задача сопоставима с написанием самого генератора. Тогда с помощью другого языка сгенерировали последовательность псевдослучайных чисел, записали в файл и считывали данные из этого файла, что на РЕФАЛе делалось легко. Это пример того, когда мы некоторую функцию заменили просто массивом данных.

Концептуальная схема рассмотрения ЯП.

Мы будем рассматривать ЯП по следующей схеме:

  1. Базис. Скалярный Структурный

Типы данных и Составные типы данных

операции над и операции над ними

ними

Базисы современных ЯП не слишком ушли вперед от самых первых ЯП типа FORTRAN и Алгол-60.

2. Средства развития. ( Си и Си++. С точки зрения базиса там появился новый тип данных – ссылка, в следствие чего стало возможным передавать параметры в функции по ссылке. А с точки зрения средств развития появился класс, а с ним появилась возможность перекрытия операций, динамического связывания) Это построение новых понятий на базе уже существующих. Можно сказать, что средства развития – это средства введения, описания новых абстракций.

3. Средства защиты. Это то, как эти абстракции защищены от разрушений. Эти разрушения могут быть последствием либо какого-то злоумышлия, что к ЯП никакого отношения не имеет, либо следствием каких-то ошибок в программе.

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