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