Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS_na_5.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
953.48 Кб
Скачать

Билет №1

opera:speeddial1. Поколения языков программирования. Трансляторы.

Машинные коды были языком программирования первого поколения.

Чтобы работать с компьютерами первого поколения, программисты писали свои программы в машинных кодах (machine language) – то есть с помощью одних только нулей и единиц. Программирование с помощью двоичного кода было очень медленным и трудоемким процессом.

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

Второе поколение ознаменовалось появлением в начале 50х годов языка программирования Ассемблера (assembly language). Вместо одних только нулей и единиц использовались операторы, которые были похожи на слова английского языка. Компилятор преобразовывал эти выражения в машинные коды.

Третье поколение. Языки программирования высокого уровня (high-level languages). Эти языки впервые позволили ученым (прежде всего, математикам) работать с компьютерами. Язык программирования FORTRAN позволял довольно легко определять переменные и использовать для вычислений математические выражения. Для языков высокого уровня, таких как FORTRAN и COBOL, понадобились более быстрые, высокоэффективные компиляторы, поскольку при преобразовании исходного кода, выходные программы получались большими. С++, Basic...

Четвертое поколение языков программирования зародилось в конце 70-х, а развитие их продолжается по сей день. Эти языки существенно уменьшили время разработки ПО и позволили выполнять эту работу даже людям без технического образования, и не прибегая к помощи профессиональных программистов. В 60-х и 70-х годах так просто, без применения языков программирования, использовать возможности компьютеров было невозможно.

К языкам четвертого поколения относятся программные инструменты, которые позволяют пользователям разрабатывать программы, обладая минимальными техническими навыками, а также новые средства разработки, которые повышают производительность труда программистов. Языки четвертого поколения постепенно становятся менее процедурными или даже непроцедурными в сравнении с обычными языками программирования. Процедурный язык требует описания последовательных шагов, или процедур, которые "говорят" компьютеру, что нужно сделать и каким образом это должно быть сделано. Непроцедурные языки требуют от пользователя только указания, что надо сделать, без подробного описания, как это должно быть выполнено. Таким образом, с помощью непроцедурного языка можно выполнить некоторую задачу, описав меньшее число шагов, чем при решении той же задачи, пользуясь процедурным языком.

Существует семь категорий языков четвертого поколения: языки запросов, генераторы отчетов, графические языки, языки программирования очень высокого уровня, пакеты прикладных программ, а также некоторые виды программ для персональных компьютеров. (SQL, VBA…)

Пятое поколение – языки искусственного интеллекта – Prolog.

Транслятором языка программирования называется программа, осуществляющая перевод текста программы с языка программирования в (как правило) машинный код. Комплекс средств, включающих в себя входной язык программирования, транслятор, машинный язык, библиотеки стандартных программ, средства отладки оттранслированных программ и компоновки их в единое целое, называется системой программирования. В зависимости от способа перевода с входного языка (языка программирования) трансляторы подразделяются на компиляторы и интерпретаторы. В компиляции процессы трансляции и выполнения программы разделены во времени. Сначала компилируемая программа преобразуется в набор объектных модулей на машинном языке, которые затем собираются (компонуются) в единую машинную программу, готовую к выполнению и сохраняемую в виде файла на магнитном диске. Эта программа может быть выполнена многократно без повторной трансляции. Интерпретатор осуществляет пошаговую трансляцию и немедленное выполнение операторов исходной программы: каждый оператор входного языка программирования транслируется в одну или несколько команд машинного языка, которые тут же выполняются без сохранения на диске.

2. Принципы построения реляционной бд. Состав реляционной субд.

Реляционная база данных – набор отношений, имена которой совпадают с именами схем отношений, определенных в базе данных.

При проектировании базы данных необходимо решить 3 основные задачи:

1. Выбрать способ отображения объектов предметной области в виде объектов модели данных, чтобы эта отображение не противоречило законам предметной области и было по возможности эффективным, удобным. Эту задачу называют задачу логического проектирования.

2. Установить необходимый состав запросов, выполняемых в базе и разрабатывать эффективный метод их реализации. При этом необходимо учитывать особенности конкретной СУБД, наличие дополнительных данных хранимых процедур, и т.д.

3. Разработать интерфейс. Удобный для пользователя: выполнения запросов, отчеты. Эта задача не является непосредственной задачей проектирования базы данных, однако её решение обеспечит эффективное использование ресурсов данных.

Согласно Дейту [1], реляционная модель баз данных состоит из трех частей:

1. В структурной части; 2. В манипуляционной части; 3. В целостной части

В структурной части модели фиксируется, что единственной структурой данных является реализованное n-арное отношение.

Манипуляционная часть включает механизмы манипулирования реляционными базами данных: реляционная алгебра и реляционное исчисление.

Реляционная алгебра основана на теории множеств и включает операции теории множеств.

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

Целостная часть фиксирует 2 требования целостности, которые должны поддерживается в любой реляционной СУБД:

Требования целостности сущности. Данное требование соответствует первому свойству отношения – отсутствия кортежа дубликатов.

Требование целостности по ссылкам. Для того чтобы задать связь двух отношений, используется вторичный ключ (внешний). Внешний ключ содержит значение первичного ключа некоторой таблицы, с которой связана данная таблица.

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

Требование целостности по ссылкам подразумевает, что для каждого значения внешнего ключа должно найтись значение первичного ключа с таким же значениями, либо – значение должно на что-то указывать. При обновлении ссылающегося отношения (вставки новых кортежей) модификации внешнего ключа необходимо следить, чтобы не появились некорректные значения внешнего ключа. Особая ситуация возникает при удалении кортежей из отношения, на которую ведет ссылка. Для обеспечения целостности существует три подхода:

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]