Файл: Основы алгоритмизации и программирования. Классификация языков программирования высокого уровня..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 285

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Shape { geometry . . . appearance . . . }

Значением поля geometry являются геометрические узлы, т.е. узлы, определяющие форму и структуру объектов.

Стандартные примитивные геометрические узлы следующие:

Box { . . . }

Cone { . . . }

Cylinder { . . . }

Sphere { . . . }

В полях примитивных геометрических узлов указываются их размеры[36].

Box { size 2.0 0.5 3.0 }

Cone { height 3.0 bottomRadius 0.75 }

Cylinder { height 2.0 radius 1.5 }

Sphere { radius 1.0 }

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

Lisp

Язык функционального программирования Лисп (Lisp) был разработан в 1958 году Джоном МакКарти (John McCarthy). Название Лисп (Lisp) происходит от List processing (обработка списков). Лисп представляет собой язык функционального программирования. Он основан на алгебре списочных структур, лямбда-исчислении и теории рекурсивных функций. Cсуществует несколько диалектов языка Лисп: Lisp1 (1958), MacLisp (1964), InterLisp (1972), CommonLisp (1984). Диалект CommonLisp получил наибольшее распространение.

Первые реализации языка были интерпретаторами и особой скоростью не отличались. В настоящее время все коммерческие и некоторые бесплатные реализации имеют качественные оптимизирующие компиляторы. По разнообразию типов данных Лисп превосходит любой другой язык: числа целые, целые с неограниченным числом знаков, вещественные, дробные (выполнение (/ 1 3) вернет 1/3, а не 0.3333333...), комплексные, списки, массивы, строки, символы, последовательности, функции, структуры, макросы, классы и объекты. В Лиспе типы привязываются к значению переменной, а не к ее имени, поэтому легко создавать разнотипные списки и массивы

Определение функций и их вычислений в Лиспе основано на лямбда-исчислении (lambda calculus) Черча. Функции в Лиспе могут передаваться как параметры, модифицироваться и возвращаться как значения. Кроме того, в Лиспе компилятор можно вызывать из исполняемой программы "на лету", то есть для модификации и рекомпиляции отдельной функции или класса не требуется остановка системы.[37] Данные в Лиспе представляются атомами, списками, консами, символьными выражениями. Взаимосвязь понятий иллюстрируется рис. 5.[38]


Рисунок 5. Символьные выражения Лиспа

Атомы, простейшие объекты Лиспа, делятся на символьные и числовые. Символьный атом - это последовательность букв, цифр и возможно специальных символов, например, X1, Gruppa-11, ABCD. Числовой атом - это последовательность цифр, например, 2, -75, 355. В числовом атоме могут присутствовать символы '+', '-', '.', '/', например –11, +55.473, 2/5. Числовые атомы интерпретируются как константы, символьные - как константы и как переменные. Атом T обозначает логическое значение "истина", атом NIL - логическое значение "ложь" или пустой список.

Последовательность элементов, разделенных пробелами и заключенных в круглые скобки, является списком. Элементами списка могут быть любые объекты: атомы, списки, консы, например, (1 a 2 b 3 c), ((x1 0) (x2 1)), ((y . blue) (z . yellow)). Пустой список не содержит элементов и обозначается ( ) или NIL. Таким образом, список - это многоуровневая или иерархическая структура данных, в которой открывающие и закрывающие скобки находятся в строгом соответствии. Например, приведенные ниже выражения являются правильно составленными списками:

(+ 2 3) - список из трех элементов;

(((((первый) 2) третий) 4) 5) - список из двух элементов.

Список, в который не входит ни один элемент, называется пустым и обозначается “( )” или символом NIL. Пустой список - это не то же самое, что "ничего". Он выполняет ту же роль, что и ноль в арифметике. NIL может быть, например, элементом других списков:

NIL то же, что и ( );

(NIL) список, состоящий из атома NIL;

(( )) то же, что и (NIL);

((( ))) то же, что и ((NIL));

(NIL ( ) ) список из двух пустых списков.

Пара элементов, разделенных точкой и заключенных в круглые скобки, называется консом, или точечной парой. Список (e1 e2 … en) может быть представлен суперпозицией консов - (e1 . (e2 . (… (en . NIL) …))).

Символьным выражением в Лиспе является один из следующих объектов: - атом, список (s1…sn) или конс (s1.s2), где s1, s2, …, sn - символьные выражения. Например, (S3 (T . L) . (a c)) является символьным выражением.[39]

В Лиспе формы представления программы и обрабатываемых ею данных одинаковы и представляются списочной структурой. Списки, представляющие программы и данные, состоят из списочных ячеек, расположение и порядок которых в памяти несущественный. Структура списка определяется логически на основе имен символов и указателей. Добавление новых элементов в список или удаление из списка может производиться без переноса списка в другие ячейки памяти. Резервирование и освобождение могут в зависимости от потребности осуществляться динамически, ячейка за ячейкой[40].


Prolog

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

Ориентация Пролога – “нетрадиционные” применения вычислительной техники: понимание естественного языка, БЗ, экспертные системы и прочие задания. Его принципиальное отличие от традиционных языков программирования состоит в подходе способа описания решения задачи. Программа на Прологе описывает не процедуру решения задачи, а логическую модель предметной области – некоторые факты относительно свойств предметной области и отношений между этими свойствами, а также правила вывода новых свойств и отношений из уже заданных, а так же программа на языке пролога состоит, из предложений, которые могут быть фактами, правилами или вопросами.[41]

Правила сопоставления термов в системе Пролог

Терм – элемент Пролог-программы – константа-переменная-структура, один из трех вариантов. Терм записывается как последовательность литер, которые делятся на 4 категории: {A..Z},{a..z}, {0..9},{+ - * / ^ < > ~ : . ? @ # $ &}. Наиболее важная операция над термами – сопоставление. Сопоставление – процесс проверки сопоставимости термов.

Два терма сопоставимы, если:

- они идентичны,

- переменным в обоих термах можно присвоить в качестве значений объекты таким образом, что после подстановки они станут идентичными.

Например, date(Day,июнь,1999) и date(Day1,июнь,1999) сопоставимы, поскольку переменным Day и Day1 можно присвоить одинаковые значения от 1 до 31[42]

Работа со списками

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

length([], 0). /* в пустом списке элементов нет */

length([_|T], L) :–

length(T, L_T), /* L_T — количество элементов в хвосте */

L = L_T + 1. /* L — количество элементов исходного списка */

Предикат, позволяющий проверить принадлежность элемента списку (первый аргумент — искомое значение, второй — список, в котором производится поиск).

member(X,[X|_]). /* X — первый элемент списка */

member(X,[_|T]) :–

member(X,T). /* X принадлежит хвосту T*/

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

conc([ ], L, L). /* при присоединении пустого списка к списку L получим список L */

conc([H|T], L, [H|T1]) :–

conc(T,L,T1). /* соединяем хвост и список L, получаем хвост результата */[43]

  1. Basic

Basic (Бейсик) создавался в 60-х годах ХХ века, в качестве учебного языка и очень прост в изучении. По популярности занимает первое место в мире. REM – оператор комментария язык программы. Все что следует после этого, оператора до конца строки пропускается компилятором и предназначено исключительно для человека, т.е. здесь писать можно что угодно. Удобно использовать комментарий в начале программы для указания её названия и назначения[44].


Пример:

REM Это комментарий

можно и так:

' Это тоже комментарий

CLS – оператор очистить экран. Вся информация, которая была на экране, стирается.

PRINT[45] – оператор вывода. Общий вид оператора: PRINT “формат:”, список или PRINT х1; х2;…

пример: PRINT "Привет! Меня зовут Саша."

На экран будет выведено сообщение: Привет! Меня зовут Саша.

INPUT – оператор ввода. Используется для передачи в программу каких-либо значений. Общий вид оператора: INPUT ; х1; х2;…

пример: INPUT а

На экране появится приглашение ввести данные (появится знак "?") и компьютер будет ждать их ввода. Для ввода необходимо ввести данные с клавиатуры и нажать ввод (enter)[46].

INPUT "Введите число а: ", а

Компьютер выведет на экран: 'Введите число а:' и будет ждать ввода данных.

DIM – оператор описания типа переменной. Одномерный массив имеет вид DIM(d), а двумерный DIM(n,m).

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

Переменная - это имя участка в памяти, в котором в определённый момент времени может быть только одно значение, название "переменная" подразумевает, что содержимое этого участка может изменяться. В качестве имен переменных могут быть латинские буквы с индексами. Причем может быть не одна буква, а несколько[48].

Костанты – данные, значение которых не меняется во время работы программы.

Пример: DIM a, b, chislo1 AS INTEGER, где Integer – целые числа от -32768 до 32768

Если в программе используются переменные, не описанные с помощью оператора DIM, то компьютер будет рассматривать их как универсальные переменные. Это может привести к неэффективному использованию оперативной памяти. К тому же, такие программы не всегда легки для восприятия - плохо читаемы[49]. Для задания значения переменной служит оператор присваивания. Он записывается так:

LET переменная = значение (или просто: переменная = значение)

Пример:

LET a = 3

chislo1 = 15

END – оператор конца программы.

Рисунок 6. Арифметические операции на языке Basic[50]

Рисунок 7. Математические функции на языке Basic[51]


ЗАКЛЮЧЕНИЕ

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

В связи с этим идет рост программирования, как в языках программирования высокого уровня, так и других языках. Сейчас очень много сфер где требуются программы для работы, различных устройств, например: БПЛА, в настоящее время набирают такие масштабы, что даже МЧС России их готовы закупать вместе программным обеспечением. Так же, собираются запускать более 1 вида автомобилей без водителя, управление которого планируется, путем программного обеспечения или управления удаленно и все это благодаря тому, что языки программирования стали изучать намного серьёзнее, чем в прошлом веке.

Рассмотрев более 10-ти языков программирования, я вот до сих не определился с каким языком, хотел бы продолжить общение и в дальнейшем работать на нем, т.к. интересных языков много.

СПИСОК ЛИТЕРАТУРЫ

  1. Блауг М. Бэббедж Чарльз. 100 великих экономистов до Кейнса / М. Блауг. - СПб.: Экономикус, 2008. С. 169
  2. Абельсон Х., Сассман Д.Д., при участии Сассман Дж.. Структура и интерпретация компьютерных программ / Х. Абельсон, Д.Д. Сассман, при участии Дж. Сассман –М.: Добросвет, 2004. - С. 368
  3. Авраамова О.Д. Язык VRML. Практическое руководство / О.Д. Авраамова М.: Диалог-МИфИ, 2013. — 288 с.
  4. Ашарина И.В. Основы программирования на языках C и C++ / И.В. Ашарина. - М.: ГЛТ, 2012. – С.208
  5. Баррон Д. Введение в языки программирования / Д. Баррон - М.: Мир, 2015. – С.192
  6. Братко И.А. Алгоритмы искусственного интеллекта на языке PROLOG / И.А. Братко / И.А. Братко. – М.: Вильямс, 2004 . – С.289.
  7. Брент Уэлш, Кен Джонс, Джеффри Хоббс. Практическое программирование на Tcl и Tk / Брент Уэлш, Кен Джонс, Джеффри Хоббс. – М.: Вильямс, 2004 С.269
  8. Голицына О.Л. Партыка Т.Л. Попов И.И. Языки программирования. Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: ИНФРА-М, 2015. С.178
  9. Гринчишин Я. Т., Ефимов В. И., Ломакович А. Н. Алгоритмы и программы на бейсике. / Я.Т. Гринчишин, В.И. Ефимов, А.Н. Ломакович – М.: Уч. Пос., 2014. - 160 c
  10. Жарков В. А. Основы программирования игр и приложений на Visual Basic и DirectX 10 / В.А. Жарков, - М.: Уч.пос., 2017. - 524 c.
  11. Зиборов В.Т. Visual Basic на примерах / В.Т. Зиборов – Спб.: БХВ-Петербург, 2017. - 961 c.
  12. Зыков С.В. Введение в теорию программирования. Функциональный подход. / С.В. Зыков –М.: Издательство Учебный Центр БИТ Microsoft МИФИ, 2015. С.275
  13. Зюзысов В. М. Математическое введение в декларативное программирование: Уч. пособие. — Томск: ТГУ, 2013. - С.83
  14. Иванова Г. С., Ничушкина Т. Н. Объектно-ориентированное программирование: учебник / Г. С. Иванова, Т. Н. Ничушкина — М.: Изд-во МГТУ им. Н. Э. Баумана, 2014. С.455
  15. Карпов Ю.А. Теория и технология программирования. Основы построения трансляторов / Ю.А. Карпов. - СПб.: BHV, 2012. – С.272
  16. Климов А.В. Занимательное программирование на Visual Basic / А.В. Климов - М.: БХВ-Петербург, 2016. - 2474 c.
  17. Кузнецов М.В. PHP 5 / М.В. Кузнецов. - СПб.: БХВ-Петербург, 2006. С.346
  18. Котеров Д.В. PHP 5 / Д.В. Котеров.- СПб.: БХВ-Петербург, 2006. С.128
  19. Лаптев В.В.: С++. Объектно-ориентированное программирование. - СПб.: Питер, 2008 с.216
  20. Лори Уоллмарк. Ада Байрон Лавлейс - первый программист. / Уоллмарк Л. - М.: Пешком в историю, 2017. С.40
  21. Могилев А.В., Пак Н.И., Хеннер Е.К.Информатика: Учебное пособие для вузов / А.В.Могилев, Н.И.Пак, Е.К.Хеннер.. - М.: Изд. центр "Академия", 2015.с 427
  22. Мурашко И.А., Марина И.М. Методическое пособие по курсу "Функциональное и логическое программирование" / И.А. Мурашко, И.М. Марина - Мн.: БГУИР, 2002. - С. 427
  23. Павловская Т.А.: С#. Программирование на языке высокого уровня. - СПб.: Питер, 2016 - с.304
  24. Питер Друкер, Бизнес и инновации/ Д. Питер - М.: Вильямс, 2014. С.179
  25. Пратт Т.М., Зелковиц М.Я. Языки программирования. Разработка и реализация / Т.М. Пратт, М.Я. Зелковиц. – Спб.: Издательство Питер, 9-е издание, 2017. С.246
  26. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль / Г.Л. Семашко, А.И. Салтыков. - М.: Наука, 2014. – С.128.
  27. Симонович С.В. Информатика: Базовый курс / С.В. Симонович – Спб.: 2014. – С.640
  28. Симонович С.В. Информатика: Базовый курс / С.В. Симонович. – Спб.: Питер, 2014. – 640 с.: ил. 2.
  29. Учебное пособие. – М.: Издательский отдел факультета ВМК МГУ имени М.В.Ломоносова (лицензия ИД № 05899 от 24.09.2001); МАКС Пресс, 2016 – 112 с
  30. Цуканова Н.И., Дмитриева Т.А.. Теория и практика логического программирования на языке Visual Prolog 7. Учебное пособие для вузов. / Н.И. Цуканова, Т.А. Дмитриева. — М.: РиС, 2015. — 232 c.
  31. Черпаков, И.В. Основы программирования: Учебник и практикум для СПО / И.В. Черпаков. – М.: Люберцы: Юрайт, 2016. – С.219
  32. Шварц Р.Л., Феникс Т., Фой Б. Д. Learning Perl / Шварц Р.Л., Феникс Т., Фой Б. Д. - Символ-Плюс, 2016. С.384
  33. Шрайнер П. А. Основы программирования на языке Пролог : курс лекций. Лекция 1 / П. А. Шрайнер. - М. : Интернет - Ун-т Информ. Технологий, 2005. -С.176
  34. Экспозиция Deutsches Museum, Munchen, 2005
  35. Якубайтис Э.А. Информационные сети и системы: Справочная книга / Э.А. Якубайтис -М.: Финансы и статистика, 2016. С.322
  36. McCartney S. ENIAC: the triumphs and tragedies of the world’s first computer - .:N. Y., 2015. С.336.