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

Автор работы: Пользователь скрыл имя, 31 Марта 2014 в 11:53, курсовая работа

Краткое описание

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

Содержание

Введение…………………………………………………………………….2
1. Технология логического программирования. Отличие языков логического программирования от языков процедурного программирования…………………………………………………...…3
1.1 Логико-смысловая модель на уровне «сущность», «особенное» и «единичное» ...……………………………………………………….……10
1.2 Измерение объема заданного сообщения в кодировках КОИ-8 и Unicode…………………………………………………………………… 14
1.3 Нахождение количества информации, которые переносят заданные буквы согласно вероятностному подходу………………….……………16
1.4 Составление таблицы истинности для логического выражения ….18
2. Решение задач, направленных на умение производить вычисления в разных системах счисления и составление прямых, обратных и дополнительных кодов для целых чисел ………………………...…….20
2.1 Перевод двоичного числа в восьмеричную и шестнадцатеричную системы счисления…………………………………………………….….20
2.2 Перевод десятичного числа в двоичное число с точностью……….22
2.3 Составление прямого, обратного и дополнительного кодов заданных чисел…………………….………………………………………………... 24
Заключение ………….……………………………………………….…. 26
Список использованной литературы………………………….……...….27

Вложенные файлы: 1 файл

КР-ПЗ.docx

— 174.19 Кб (Скачать файл)

Содержание

Введение…………………………………………………………………….2

    1. Технология логического программирования. Отличие языков логического программирования от языков процедурного программирования…………………………………………………...…3

1.1 Логико-смысловая модель на уровне «сущность», «особенное» и «единичное» ...……………………………………………………….……10

1.2 Измерение объема заданного  сообщения в кодировках КОИ-8 и  Unicode…………………………………………………………………… 14

1.3 Нахождение количества  информации, которые переносят заданные  буквы согласно вероятностному  подходу………………….……………16

1.4 Составление таблицы  истинности для логического выражения ….18

2. Решение задач, направленных на умение производить вычисления в разных системах счисления и составление прямых, обратных и дополнительных кодов для целых чисел ………………………...…….20

2.1 Перевод двоичного числа  в восьмеричную и шестнадцатеричную  системы счисления…………………………………………………….….20

2.2 Перевод десятичного  числа в двоичное число с точностью……….22

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

Заключение ………….……………………………………………….….  26

  Список использованной литературы………………………….……...….27

 

Введение

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

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

Программирование для ЭВМ основывается на использовании языков программирования, при помощи которых записывается программа.

Язык программирования – формальная знаковая система, которая, как было сказано выше предназначена для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. [2]

 

  1. Технология логического программирования. Отличие языков логического программирования от языков процедурного программирования.

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

Рис. 1

Классификация языков программирования

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

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

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

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

Процедурные языки характеризуются следующими особенностями:

    • необходимостью явного управления памятью, в частности, описанием переменных;
    • малой пригодностью для символьных вычислений;
    • отсутствием строгой математической основы;
    • высокой эффективностью реализации на традиционных ЭВМ. [4]

Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. Дадим краткую характеристику реализованным на ПЭВМ языкам программирования в порядке возрастания их уровня.

Двоичный язык является непосредственно машинным языком. В настоящее время такие языки программистами практически не применяются [4].

Язык Ассемблера – это язык, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, присваивать удобные имена ячейкам и областям памяти, а также задавать наиболее удобные схемы адресации.

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

Язык программирования С (Си) – первоначально был разработан для реализации операционной системы UNIX в начале 70-х годов. В последующем приобрел высокую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован па большинстве ЭВМ.

Basic (BeginnersAll-purposeSymbolicInstructionCode) – многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.

Pascal – является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию.

Важнейшими свойствами этих языков являются:

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

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

 

Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, с использованием механизмов логического вывода информации на основе заданных фактов и правил вывода. Важнейшим представителем данного семейства языков программирования является PROLOG {Пролог} (PROgramminginLOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является, именно, Пролог. Так, имеется свыше 15 различных его реализации на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта [3].

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общей значимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования.

Декларативность (описание содержимого объекта) языка PROLOG хорошо выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются:

    • высоким уровнем;
    • строгой ориентацией на символьные вычисления;
    • возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;
    • возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные. [4]

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

Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

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

Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщенными сведениями.

Под Базами знаний в информатике понимают совокупность фактов и правил вывода, допускающих логический вывод и осмысленную обработку информации. В языке Пролог базы знаний описываются в форме конкретных фактов и правил логического вывода над базами данных и процедурами обработки информации, представляющих сведения и знания о людях, предметах, фактах событиях и процессах в логической форме. [3]

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

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

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

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

Информация о работе Технология логического программирования. Отличие языков логического программирования от языков процедурного программирования