Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

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

Степень разработанности темы определяется существованием достаточного количества актуальных научных и публицистических материалов, в которых рассматривается программирование в целом. В последнее время, программированию уделяется все большее внимание. Среди русских ученых этой темы занимались: Артемов И.Л., Жданова Ю.С., Немнюгин С.Березин Н.А., Роганов Е.А., Вострикова З.П. и др. Среди зарубежных ученых это: Перри Г., Корнелл Г., Хорстманн Кей С., Дейтел Х. и др.

Цель: изучить языки программирования высокого уровня.

Задачи:

  • Определить понятия языков программирования
  • Изучить классификацию языков программирования высокого уровня
  • Рассмотреть машинно-независимые и машинно-ориентированные языки
  • Рассмотреть объектно-ориентированные и декларативные языки
  • Изучить логические и функциональные языки

Объект работы: языки программирования высокого уровня

Предмет работы: классификация языков программирования высокого уровня

Глава 1. Сущность языков программирования

Понятие языков в программировании

Первые компьютеры программировались совсем не так, как современные. Для их программирования требовалось значительно больше усилий. В память первых компьютеров программы не заносились-там хранились только данные. Концепция программирования совершенно отличалась от нынешней, поскольку программа «вшивалась» в компьютер. Программы генерации и обработки данных физически монтировались в компьютер соответствующими специалистами. Первые программисты никогда не слышали понятий «клавиатура», «редактор» или «компилятор». Программирование таких компьютеров было крайне сложным. Для внесения изменений «программист» должен был осуществить перекоммутацию проводов. Так приходилось работать до тех пор, пока человек по имени Джон фон Нейман не предложил концепцию совместного использования программ. Он продемонстрировал, что программа может храниться в памяти вместе с данными. После этого программы стали хранить в памяти, а не с помощью аппаратной коммутации, что позволило очень быстро изменять их. Такой прорыв был очень важным во всей истории компьютеров. Эта концепция используется и в современных машинах. [1, с.59]

Язык машинных кодов и язык ассамблера-называются языками программирование низкого уровня. [1, с.60]

Ассемблер-вспомогательная программа в составе операционной системы для автоматического перевода исходой программы, подлежащее выполнение на ЭВМ, на машинный язык. Один из видов транслятора. [43, с.27]

Машинный язык-это шестнадцатеричный программный код, который понимает и может выполнять процессор компьютера. [20, с.387]

Для перевода ассемблера в машинные коды не требуется специальных средств, поскольку каждая инструкция ассемблера один в один соответствует машинному коду (хотя одна машинная команда может занимать в памяти более одного байта). Языки низкого уровня в настоящее время используются редко благодаря преимуществам и эффективности языков высокого уровня (например, C++ и Visual Basic).

Программирование в машинных кодах является сложным для восприятия. Современные коды машинного уровня более эффективны. Языки программирования высокого уровня позволяют избежать сложностей языков низкого уровня. После того как появился ассемблер, использование компьютеров значительно расширилось. С началом широкомасштабного использования компьютеров возникла потребность в написании более сложных приложений. Использование машинных кодов и ассемблера становилось неэффективным и не соответствовало обороту компаний. Были разработаны языки высокого уровня, что сравнимо с добавлением еще одного слоя между разработчиком и аппаратной частью компьютера. Наличие дополнительного слоя подразумевает, что для перевода языка более высокого уровня в машинный код компьютеру придется выполнить еще больше работы, но разработчик будет освобожден от работы на низком машинном уровне. Двумя первыми языками высокого уровня были Fortran и Cobol. [1, с.60-61]

Языки высокого уровня-это язык программирования, характеризующийся высоким уровнем об общении понятии, соответствующих некоторой области применения и позволяющий лаконично и емко определять задания для вычислительной машины в терминах, близких к использованию профессиональной деятельности людей. [20, с.588-589]

К языкам высокого уровня относятся: Фортран, Бейсик, Паскаль, С,С++, Visual Basic,Delphi,Java, Пролог и Лисп. [28, с.15]

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

Язык программирования представляет собой стандартизированное средство коммуникации для сообщения компьютеру команд на выполнение конкретных задач. Языки программирования являются искусственными языками, в которых синтаксис и семантика строго определены. Поэтому при применении их по назначению они не допускают свободного толкования выражения, характерного для естественного языка. Язык программирования-это формальный язык описания данных с целью их обработки на компьютере. [20, с.590]

Язык программирования-это формальный язык описания данных (информации) с целью их обработки на вычислительной машине. [43, с.131]

Таблица №1

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

Таблица составлена по книге автора Г. Р. Кадырова “Основы алгоритмизации и программирования» [28, с.19 ]

К языкам высшего уровня относятся процедурные языки, но только пункт «Высокого уровня». Ассемблер к языкам высокого уровня не относится.

К языкам программирования высшего уровня относятся непроцедурные языки. В непроцедурные языки включаются объектно-ориентированные и декларативные языки.

Программирование, в основу которого положено понятие объекта.

Объект-это элемент программирования, объединяющий в себе
как данные, так и действия над ними.

Объектно-ориентированное программирование позволяет упростить
программирование, сделать его более естественным; характеризуется
тремя основными свойствами: инкапсуляцией, наследованием и полиморфизмом.

Объект является неотъемлемым элементом процедурно-ориентированных языков программирования, например Visual Basic, Delphi, C++, Си. [45, с.127]

Декларативный язык-это язык программирования, в котором программист описывает факты, касающееся некоторые предметной области (т.е. формулирует прикладную задачу), оставляя интерпретатору языка самостоятельно вывести из них соответствующие заключения. Программист использует этот язык для описания набора фактов и связей так, что пользователь в соответствии с возникшей необходимостью может дать указание системе выдать определённый результат. [20, с.298-299]

Первыми двумя языками высокого уровня были Fortan и Cobol. [1, с.61]. После того как Fortan и Cobol продвинулись вперед компьютерная индустрия уже не останавливалась. [1, с.65]

Вывод первой главы

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

Глава 2. Процедурные языки

2.1 Высокий уровень, машинно-независимый

К машинно-независимым языкам высокого уровня относят: Фортран, Бейсик, Паскаль.

Одним из алгоритмических языков, получивших в настоящее время наибольшее распространение, яв­ляется фортран (Mathematical. FORmula TRANslating System). Этот язык был разработан сотрудниками фирмы IBM (США) в 1954-1956 годах для маши­ны IBM 704. В первом документе, посвященном форт­рану и выпущенном в ноябре 1954 года, было сказано: «Система трансляции математических формул, со­кращенно фортран, будет состоять из большего коли­чества программ, позволяющих IBM 704 воспринимать сжатую формулировку задачи в терминах математи­ческих обозначений и составлять автоматически вы­сокоэффективную программу для решения задачи». [5, с.9]

Фортран построен на базе английского языка. По­этому все выражения Фортрана, слова языка, назва­ния переменных составлены исключительно из букв ла­тинского алфавита. [6, с.14]

В приложении №1 «Допустимые символы фортрана» отображены буквы, цифры и знаки, которые разрешаются при записи предложений (операторов).

В фортране не различают строчные и прописные буквы, и поэтому принято пользоваться только про­писными буквами. [5, с.12]

Все специальные слова языка Фортран являются ключевыми. Они могут использоваться в составе предложений или операторов языка, но допускает­ся и произвольное их применение. [7,с.9] В приложении №2 «Основные ключевые слова языка Фортран» отображена таблица-перечень ключевых слов.

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

Простейшим и наиболее употребимым оператором является оператор присваивания. Он позволяет при­своить переменной результат вычисления выражения. Запись этого оператора имеет вид:

А=Е

где А-идентификатор, Е-арифметическое выра­жение. [5, с.20]

При программировании арифметических выражений следует помнить о при­оритетах операций. Приоритет операций определяет порядок их выполне­ния. Первыми выполняются унарные операции (возведение в степень и т. п.). Затем арифметические операции умножения и деления, они счита­ются равноприоритетными. Далее выполняются операции сложения и вычи­тания, тоже равноприоритетные. Если подряд идут несколько операций с одинаковыми приоритетами, они выполняются слева направо, по очереди. Исключение составляет операция возведения в степень. Несколько идущих подряд операций возведения в степень выполняются справа налево.

Порядок выполнения операций может быть изменен с помощью круглых скобок. При наличии в арифметическом выражении круглых скобок первыми будут выполняться операции в круглых скобках, начиная с самых внутрен­них. [7, с.27-28]

В СИ-программах операция присваивания помимо выполнения пересылки еще приобретает и значение равное присваиваемому. [8, с.39]

Так что в СИ можно одним предложением выполнить несколько операций присваивания:

float x,y,z,t;

x=y=z=t=10;

Оператор присваивания выполняется справа налево. [8,с.39]

Логическое выражение является совокупностью логических переменных, объединенных знаками логических операций. [20,с.285]

Оператор if...then...end if называется условным оператором.

Логическое выражение принимает одно из двух возможных значений — "истина" или "ложь". Часто в роли логиче­ского выражения выступает какое-то условие, которое может выполняться либо нет. Условный оператор IF...THEN...ELSE...END IF

Оператор if...then...else...end if является полной версией условного опера­тора. Условные операторы можно вкладывать друг в друга, программируя таким образом сложные (многовариантные) ветвления.

Оператор SELECT. Для ситуаций, где имеется несколько (три и более) альтернатив, больше подходит оператор select case. Этот оператор реализует многовариантное ветвление, называется оператором выбора.

Оператор цикла со счетчиком DO...END DO.Оператор цикла является важнейшим оператором и имеется в большинстве современных языков программирования. Цикл позволяет многократно вы­полнить некоторое множество действий, задаваемых операторами, состав­ляющими его тело.

Оператор цикла с предусловием DO WHILE...END DO. При выполнении этого оператора вначале вычисляется значение логиче­ского выражения в круглых скобках. [7, с.30-34]

Язык Фортран – старейший и сегодня активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач. [28,с.19]

Вторым языком, который я разберу в этой главе будет язык Бейсик.

Бейсик (BASIC) – это сокращение английских слов Beginners Allpurpouse Symbolic Instraction Code, что в переводе означает «многоцелевой язык символических инструкций для начинающих». Он был разработан профессорами Дартмутского колледжа (США) Т. Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, благодаря простоте, стал очень популярным. Особенно его популярность повысилась с появлением персональных компьютеров, где он стал одним из основных языков программирования. [10,с.51]

Бейсик был одним из первых алгоритмических языков, в составе которого изначально присутствовали операторы общения пользователя с пошагово выполняющейся программой. Одновременно с текстом сообщения об ошибке Бейсик-система сообщала номер строки программы, нарушившей синтаксис языка или приведшей к аварийной ситуации. Первые Бейсик- системы, совмещавшие в себе возможности ввода, редактирования, испол­нения и отладки программ, послужили прототипами современных интегри­рованных сред. Вторая особенность, привлекающая массового потребителя к Бейсику, кро­ется в простоте начального освоения и краткости его изобразительных средств. Попробуйте найти хотя бы еще один язык, на котором программа, отвечающая на вопрос, чему равно дважды два, состоит всего из четырех символов: ?2*2 Аналогичная программа на Паскале содержит, минимум, три строки, а ее длина превышает 20 символов. [11, с.8-9]

Алфавит бейсика содержит 26 прописных латинских букв, цифры от 0 до 9, точку, запятую, кавычки, знаки арифметических опе­раций ( +, —, /, * (умножение) и 1 (возве­дение в степень)), знаки отношения двух вели­чин (>, <, —), скобки и другие спе­циальные знаки. Версии бейсика для отечест­венных микро ЭВМ имеют в алфавите и руские буквы.

Переменные бейсика делятся на 4 типа.

  • Простые переменные, обозначаемые ла­тинскими буквами.
  • Простые переменные, обозначаемые ла­тинскими буквами с одной цифрой после них, например, Al, D2, ..., Z9.
  • Индексированные переменные одномер­ных массивов.
  • Индексированные переменные двумер­ных массивов вида. [12, с.21]

Переменная-это объект языка программирования. Переменная имеет имя и значение. [45, с.39]

Оператор-это базовая единица действия в языках программирования. [20, с.426]

Операторы записываются в виде слов или предложений большими латинскими буквами без пробелов в словах. Программа на бейсике есть последователь­ность операторов, записанных по определен­ным. правилам и обеспечивающих решение заданной задачи на ЭВМ. В бейсике операторы записываются построчно. В одной строке может быть один оператор или несколько, раз­деленных специальным знаком (двоеточием : или наклонной чертой \). Строки должны иметь последовательную нумерацию. В приложении №3 «Символы арифметических операций» отражены символы операций бейсик. Там же отмечен порядок выполнения при вычислении. Приоритет может быть изменен вводом скобок. [12, с.21-22]

В языке бейсик используются числовые и символьные константы. Числовые константы записываются в двух формах: с фиксированной точкой и с плавающей точкой. С фиксированной точкой число представляется последовательностью десятичных цифр со знаком плюс или минус(знак плюс может быть опущен). Для определения целой части от дробной используется точка.[31, с.89] Отличительные черты языка заключаются в простоте и доступности. [32, с.122]

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

Язык паскаль был создан в конце 60-х годов Н. Виртом как
специальный язык для обучения студентов, но вскоре получил
распространение среди программистов. [13,с.7]

Язык был назван в честь французского фи­лософа и изобретателя механического калькулятора Блеза Паскаля — Паскалем. Новый язык оказался на­столько удачным, что быстро привлек к себе внимание и завоевал популярность. [14, с.18]

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

1. Простота языка позволяет быстро его освоить и создавать
алгоритмически сложные программы.

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

3. Наличие специальных методик создания трансляторов с пас-
каля упростило их разработку и способствовало широкому распространению языка.[13, с.7]

4. Оптимизирующие свойства трансляторов с паскаля позволяют создавать эффективные программы.

5. В языке паскаль реализованы идеи структурного программирования, что делает программу наглядной и дает хорошие
возможности для разработки и отладки. [13, с.7]

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

Алфавит Паскаля включает в себя:

  • прописные и строчные латинские буквы, знак подчеркивания _;
  • цифры от 0 до 9;
  • специальные символы, например +, *, { и @;
  • пробельные символы: пробел, табуляция и переход на новую строку.

Из символов составляются лексемы (tokens) , то есть минимальные единицы языка, имеющие самостоятельный смысл: константы; имена (идентификаторы); ключевые слова; знаки операций; разделители (скобки, точка, запятая, пробельные символы). [15, с.13-14]

Константа –это идентификатор обозначающий некоторую неизменную величину(значение данных) определенного типа. [20, с.362]

Числовые константы могут быть целыми и вещественными. Целые константы (INTEGER). Целая десятичная константа представляет собой последовательность десятичных цифр,которой может предшествовать знак — . [13,с.14]

Вещественные константы (REAL). Представление вещественных констант, как н на фортране, имеет две формы: в виде
десятичной дроби, где вместо запятой используется точка (напри-
мер, число 3.2), и в виде числа, содержащего указание на степень
десяти (например, число 2.5Е9). [13,с.14]

К булевским относятся две константы: TRUE и FALSE. На IBM PC занимают 1 байт. [16. с.31]

Символьные константы (CHAR). Символ, заключенный
в апострофы, есть символьная константа.

Константы-строки. Последовательность символов, заключенная в апострофы, есть строка. Константы типа ALFA*). Строку символов длиной в од-
но машинное слово называют константой типа ALFA. [13,с.15]

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

Оператор выбора для тех случаев, когда требуется осуществить выбор одного значения из конечного набора вариантов, оператор if удобнее заменить оператором выбора case. В целом оператор case выполняется также, как и составной условный оператор. Выражение должно иметь целый или символьный тип. Значение этого выражения последовательно сравнивается со значениями в расположенных ниже списках. Если в одном из списков находится совпадающее значение, то выполняются соответствующий оператор. [17. С.75-76]

Цикл с параметром for. Этот оператор применяется, если требуется выполнить тело цикла заранее заданное количество раз. Параметр порядкового типа на каждом проходе цикла автоматически либо увеличивается, либо уменьшается на единицу. [15, с.44]

Цикл с предусловием. Рассмотренный цикл for выполняет необходимую функциональность, когда число повторений тела цикла известно к моменту его начала. Однако часто приходится решать задачи, когда число повторений цикла заранее неизвестно. В ряде ситуаций это значение определяется по мере выполнения вычислительных действий. И тогда применяют другую разновидность цикла — цикл с условием. В языке Паскаль предусмотрены два цикла с условием: условие цикла проверяется перед циклом (цикл с предусловием);условие цикла проверяется после цикла (цикл с постусловием). [17,с.87]

Цикл с постусловием. В этом случае условие проверяется после цикла. Цикл проверяется до тех пор, пока проверка указанного условия будет давать результат «ложь». Важно отметить, что если условие сразу окажется истинным, то цикл все равно выполняется один раз. [17.с.89]

Оператор перехода goto. Использование оператора goto оправданно. Как правило в двух случаях:

  • Принудительный выход вниз по тексту из нескольких вложенных циклов или операторов выбора
  • Переход из нескольких мест программы в одно.[15.с.48]

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

2.2 Высокий уровень, машинно-ориентированный

К машинно-ориентированному языку высокого уровня относится С.

Язык С (Си) разработали в компании Bell Laboratories Брайан Керниган и Дэнис Ричи. В 1972 году этой компании потребо­валось написать новую операционную систему. До того момента большинство операционных систем было написано на ассемблере, поскольку языки программи­рования высокого уровня были недостаточно эффективны и снижали производи­тельность компьютеров того времени. Проблема низкоуровневого программирова­ния заключалась в том, что программный код было очень сложно «дорабатывать». Популярность С росла очень быстро. Компаниям понравилась идея создания бо­лее эффективных программ. А С-программа выполнялась в 10 раз быстрее, чем эквивалентная ей программа на языке COBOL. С ростом популярности персо­нальных компьютеров эффективный и небольшой язык становился все более не­обходимым. Причина современной популярности С заключается в том, что, несмотря на сокращение его использования, он является основой для таких языков, как C++, Java, С#, и множества других современных языков, а также будущих. С — про­ще всех. [1. с.71-72]

Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык не привязан жестко к какой-то одной операционной системе или машине. [2, с.11]

Широкое использование С с разнообразными компьютерами (иногда назы­ваемыми аппаратными платформами) привело, к сожалению, к появлению многих вариаций языка. Это было серьезной проблемой для разработчиков программ, которым требовалось писать переносимые программы, работающие на нескольких платформах. [3, с.62]

Для всемир­ной стандартизации языка Американский институт национальных стандартов работал совместно со Всемирной организации по стандартизации; совместный документ стандарта был опубликован в 1990 году и получил наименование ANSI/ISO 9899: 1990. [3, с.62]

Основой любой программы на С является функция main( ). Поскольку main( ) завер­шается круглыми скобками, она является функцией. Функция С, так же как и про­цедура Visual Basic, является фрагментом программного кода, выполняющим опре­деленное действие. Функция main( ) является обязательной, поскольку именно с нее начинается выполнение программы. Программисты используют функцию main( ) для управления остальной программой. Эта функция зачастую включает последователь­ность вызовов процедур. [1] Действитель­ный код функции main( ), как и любой другой функции С, начинается с открываю­щей фигурной скобки { и завершается закрывающей фигурной скобкой }. Внутри функции могут использоваться и другие наборы скобок, всегда парные. [1,с.197]

Самой распространенной функцией ввода/вывода является функция printf( ). [1,с.200] Функция main вызывает библиотечную функцию printf для печати заданной последовательности символов. Функция printf - это библиотечная функция, которая в данном случае напечатает последовательность символов, заключенную в двойные кавычки. [2, с.17]

Ввод с клавиатуры более сложен, чем вывод на экран. Для осуществления ввода с клавиатуры используется функция scanf( ).

Функция scanf( ) зеркально подобна функции printf( ). [1,с.203]

Функция scanf( ) читает символы из стандартного входного потока, интерпретирует их согласно спецификациям строки format и рассылает результаты в свои остальные аргументы. [2, с.172]

Функция scanf( ) прекращает работу, когда оказывается, что исчерпался формат или вводимая величина не соответствует управляющей спецификации. [2,с.172]

Крайне важно изучить, как работают операторы С. Большое количество операторов заставляет людей считать, что С — непонятный или математический язык. В действительности не все операторы языка С (в приложении №4 «Операторы С» представлен полный список) являются математически­ми. Большинство из них в других языках программирования представлены отдельными командами. Обилие операторов делает язык С очень эффективным и сжатым. [1, с.195]

Язык С поддерживает оператор if…else.

Инструкция if-else используется для принятия решения. Причем else-часть может и отсутствовать. Сначала вычисляется выражение, и, если оно истинно (т. е. отлично от нуля), выполняется инструкция1 . Если выражение ложно (т. е. его значение равно нулю) и существует else-часть, то выполняется инструкция2 [2,с.68]

Так как if просто проверяет числовое значение выражения, условие иногда можно записывать в сокращенном виде. Так, запись

if (выражение) короче, чем if (выражение ! = 0) [2,с.59]

Поскольку С является стандартизированным, широко доступным языком, написанные на языке Сприложения. С небольшими изменениями или вообще без таковых , часто можно запускать на самых разнооюразных компьютерных системах.[3,с.62]

Вывод второй главы.

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

К процедурным языкам относятся Си, Фортран, Бейсик и Паскаль. Большинство из языков, описанных в главе давно уже адаптированы под современное техническое оборудование, так как технический процесс в мире не стоит на месте. Так например язык Паскаль был усовершенствован на Турбо Паскаль в первой половине 80-х годов.

Глава 3. Непроцедурные языки

3.1 Объектно-ориентированные языки

C++ явился результатом эволюции С, который был продуктом двух более
ранних языков программирования, BCPL и В. BCPL был разработан в 1967
году Мартином Ричардсом в качестве языка для написания системного программного обеспечения и компиляторов для операционных систем. Кен Томпсон разработал многие элементы своего языка В по образцу BCPL и применил В при создании в Bell Laboratories первых версий операционной системы UNIX в 1970 году. [3. с.61]

Большинство программ ++ выглядят так же, как и программы на языке С, и так оно и есть. В C++ введено несколько новых языковых элементов, но ключевые слова и структура программ полностью совпадают с языком С.

Большинство введенных в C++ изменений является результатом внедрения технологии объектно-ориентированного программирования. Основное отличие заключается не в командах или ключевых словах, а в том, как язык поддерживает использование объектов. [1.с.208]

Алфавит C++ включает:

  • прописные и строчные латинские буквы и знак подчеркивания;
  • арабские цифры от 0 до 9, шестнадцатиричные цифры от А до F;
  • специальные знаки: " { } . ! [ ] ( ) + - / % * . \ ' : ? < = > ! & # - ;
  • пробельные символы: пробел, символы табуляции, символы перехода на новую строку. [18, с.17-18]

Из символов алфавита формируются лексемы языка:

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

Границы лексем определяются другими лексемами, такими, как разделители или знаки операций. Знак операции - это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. [18,с.18]

Компиляция – это процесс преобразования программы, написанный на языке программирования высокого уровня из исходного кода в объектный код. [20,с.356]

Данные, обрабатываемые компилятором, - это переменные и константы.
Переменные - это данные, которые могут изменять свои значения в процессе
выполнения программы. Все переменные в языке C++ должны быть описаны
явно. Это означает, что, во-первых, в начале каждой программы или функции
Вы должны привести список имен (идентификаторов) всех используемых переменных, а во-вторых, указать тип каждой из них. Оператор описания состоит из спецификации типа и списка имен переменных, разделенных запятой. В конце обязательно должна стоять точка с запятой. При описании возможно задание начального значения переменной. Имя переменной - любая последовательность прописных и строчных букв английского алфавита, цифр и символа подчеркивания Имя должно начинаться с буквы или символа подчеркивания. Имя может быть произвольной длины, но значимыми являются только первые 32 символа; остальные символы имени игнорируются. [19,с.30-31]

Спецификация типа формируется из ключевых слов, указывающих на различные типы данных. Основные типы в C++ подразделяются на две группы: целочисленные типы и типы с плавающей точкой. К целочисленным типам относятся типы, представленные следующими именами основных типов: char, short, int, long. Имена целочисленных типов могут использоваться в сочетании с парой модификаторов типа signed и unsigned. К плавающим типам относятся три типа, представленные следующими именами типов, модификаторов и их сочетаний: float, double, long double. Они используются для работы с вещественными числами, которые представляются в форме записи с десятичной точкой и в "научной нотации". [19,с.31]

Эти модификаторы изменяют формат представления данных, но не влияют на размеры выделяемых областей памяти. Модификатор типа signed указывает, что переменная может принимать как положительные, так и отрицательные значения. Модификатор типа unsigned указывает, что переменная принимает только положительные значения. [21,с.43]

Может появиться подозрение, что спецификация программы с помощью более подробной системы типов приведет к увеличению исходных текстов программы. В С++ это не так. С++ программа, описывающая типы параметров функций, использующая классы и т.д., обычно немного короче эквивалентной C программы, в которой эти средства не используются. [22,с.6]

Практически любая программа, используемая в настоящее время, откомпилирована с помощью компилятора С++. Компилятор С++ поддерживает язык С, а также ООП - дополнения (объектно-ориентированно программирование) – С++. [1.с.209]

Вторым языком, который я разберу в этой главе будет Delphi.

Система Delphi базируется на использование языка программирования Object Pascal, который является логическим продолжением и развитием классического языка программирования Pascal. Свое название система программирования Delphi получила по имени существовавшего в древней Греции города Дельфы, где находился знаменитый храм Бога Аполлона. В настоящее время система Delphi представляет собой мощное орудие, которое современные ученые и инженеры используют для познания и преобразования окружающего мира. [33,с.-7-9]

Алфавит языка Delphi включает в себя
буквы, цифры, специальные символы, пробелы и зарезервированные слова. Для составления кода программы можно использовать только латинские
буквы от а до z и А до Z. При этом в языке Delphi нет различия между строчными и прописными буквами (если только они не входят в символьные и строковые выражения). Дополнительно с буквами может использоваться и знак подчеркивания ( _ ). Буквы кириллицы допускается использовать только для символьных и строковых выражений. Цифры - только арабские от 0 до 9. К специальным символам относятся следующие символы: + - * / = . , : ; ^ < > ( ) { } [ ] @ # $. Кроме специальных символов, допускается использование и специальных пар символов: / / < > > = < = : = (* *) (. .)

В тексте программы такие парные символы нельзя разделять пробелами. [34,с.132]

Массив это - фундаментальная структура данных, состоящая из одно- или многомерной таблицы, которая рассматривается в программе в качестве одного элемента данных. Любая информация в массиве может быть определена путём упоминания наименования (имени) массива и номера требуемого элемента в массиве. Все элементы массива имеют один и тот же тип. [20,с.386]

В Delphi имеется три типа поддерживаемых языком массивов. Первый – стандартный массив, который объявляется с помощью ключевого слова array. Второй тип был впервые введен в Delphi 4 - динамический массив, т.е. массив, длина которого может изменяться в процессе выполнения кода. И последний тип массивов, как правило, не считается массивом. Конечно, мы говорим о строках:однобайтных строках (тип shortstring в 32-разрядной версии Delphi), строках сзавершающим нулем (тип Pchar) и длинных строках в 32-разрядных версияхDelphi (которые имеют отдельную вариацию для "широких" символов). [35,с.48]

Составной оператор Begin - последовательность произвольных операторов, заключенных в операторные скобки, - зарезервированные слова begin и end. Язык программирования Delphi не предполагает никаких ограничений по использованию этого оператора - составной оператор может содержать сколько угодно вложенных составных операторов.

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса. Структура условного оператора имеет следующий вид: if < условие > then < оператор 1 > else < оператор 2 >.[34, с.167]

В языке Delphi имеются специальные операторы, позволяющие выполнять идентичные операции некоторое количество раз. Такие операторы называются операторами повторения, или операторами цикла: счетный оператор цикла for-to-do, оператор цикла с предпроверкой условия while…do,оператор цикла с постпровркой repeat…until. [34, с.170-171] В цикле while  выполняется только одно действие. Если вы захотите выполнить в цикле сразу два действия, то должны заключить их  операторные в скобки begin и end. [36,с.171]

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

case < ключ_выбора > оf <список выбора» (alee < оператор(ы] >]
end;

Оператор перехода позволяет передать управление вместо программы, обозначенной меткой. Оператор перехода имеет следующий вид: goto < метка > . [34,с.179-181]

Метка – языковая конструкция, устанавливающая имя оператору и включающая идентификатор. Метка позволяет в дальнейшем ссылаться на помеченный оператор и передавать ему управление. [20,с.391]

Одним важным достоинством системы программирования Delphi является ее универсальность. Дело в том, что многие современные языки совершенствующие системы программирования созданы для решения узко специальных задач. Так язык Cobol предназначен в первую очередь для создания программ в области экономики, язык Fortran – для инженерно – технических расчетов, языки Lisp и Prolog – для работы над системами искусственного интеллекта и т.д. Система же Delphi позволяет создавать профессиональные и эффективно работающие приложения, используемые в самых различных сферах человеческой деятельности. [33,с.9]

Третьим языком будет Visual Basic.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения, привели к появлению систем программирования, ориентированных на так называемую "быструю разработку".[37,с.1]

В основе идеологии систем быстрой разработки или RAD-систем (Rapid Application Development — среда быстрой разработки приложений) лежат технологии визуального проектирования и событийного объектно-ориентированного программирования. Суть этих технологий заключается в том, что среда разработки берет на себя большую часть рутинной работы по формированию программного кода, оставляя программисту решение задач по
конструированию диалоговых окон и созданию функций обработки событий.

Среди RAD-систем особо выделяется среда Microsoft Visual Basic,
которая позволяет создавать различные программы от простейших однооконных приложений, до программ управления базами данных В качестве языка программирования в среде Microsoft visual Basic используется Visual Basic. [37,с.1]

RAD - концепция включает следующие элементы: а) сбор и накопление требований в рамках проведения конференций и рабочих совещаний; б) прототипирование и раннее многократное тестирование разрабатываемых для заказчиков программных продуктов; в) повторное использование программных компонентов; г) жёстко выдерживаемое расписание выполнения этапов разработки вместе с постоянным улучшением каждой новой версии продукта. RAD обычно опирается на методологию объектно-ориентированного программирования, обеспечивающего повторное использование компонентов. [20,с.172]

Среда Visual Basic – это не только язык программирования, но и набор графических элементов управления. Визуальная среда программирования требует наличие элементов управления для взаимодействия с ними. [1,с.82]

Visual Basic называется Visual (виртуальным) не зря. Большинство его визуальных эффектов обеспечивается именно благодаря его графическими возможностями. Для вывода различных фигур предназначенный элемент управления Shape. [1,с.138]

Свойство каждого элемента точно определяет вид изображения. Вот список элементов, которые можно реализовать с помощью элемента Shape: прямоугольники; квадраты; овалы; окружности; прямоугольники и квадраты с округленными краями.

Фигура Line (линия) используется для рисования линии различной ширины, длины и вида. Элемент Shape управляет воспроизведением всех основным фигур. Фигура Line имеет свойства, определяющий длину и толщину выводимой линии. [1,с.138-139]

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

Структура Color предоставляет в распоряжение огромное количество цветов, но существует возможность создавать и свои собственные цвета. [38,с.262]

Мультимедиа – это технология, позволяющая при помощи компьютера работать с аудио-и видеоинформацией на любых носителях, будто компакт-диск, магнитная лента или жесткий диск. [39,с.370]

Для управления устройствами мультимедиа в Visual Basic 2005 применяется специальный интерфейс MCI (Multimedia Control Interface). [38,с.329]

Основным компонентом этого интерфейса является элемент управления Microsoft Multimedia Control, имеющий большой набор средств и команд, позволяющих обеспечить полный контроль и управление мультимедиа. [38,с.331]

Четвертый язык, который я разберу, относящийся к группе объектно-ориентированных, будет Java.

Ява (Java); платформенно-независимый язык объектно- ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компанией Sun в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. [28,с21]

История Java восходит к 1991 году, когда группа инженеров из компании Sun под ру­ководством Патрика Нотона (Patrick Naughton) и члена Совета директоров (и разно­стороннего специалиста) Джеймса Гослинга (James Gosling) занялась разработкой язы­ка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения. Так как подобные устройства не потребляют много энергии и имеют малый памяти, язык дол­жен был быть маленьким и генерировать очень компактные программы. Кроме того, поскольку разные производители могут выбирать разные процессоры, было важно не привязаться к конкретной архитектуре. Проект получил кодовое название “Green”. [29,с.30]

Язык Java полностью изменил работу web-сайта. Если раньше web-страница обслуживалась удаленным сервером и с помощью web-браузера просто просматривались данные, то теперь web-браузеры используются для загрузки небольших программ, написанных на Java, и выполнения этих программ на компьютере пользователя. Вы можете взаимодействовать с Java-программами, так же как и с любой программой, запускаемой па компьютере. Все следы Java-программ удаляются сразу после заверше­ния ее выполнения или после того, как пользователь покинет данную страницу. [1,с.275]

Существуют два вида Java-программ:

  • Java-апплет. Это маленькая программа, перемещающаяся вместе с HTML – кодом и выполняемая компьютером пользователя.
  • Java-приложение. Это полностью автономная программа, для выполнениякоторой не требуется web-браузер или HTML-код.

Большинство Java-программ представлено апплетами. [1,с.275]

Апплет – это небольшая прикладная программа на языке Java, которая может быть встроена в HTML-страницы, передана из сети вместе с документом как присоединение для его надлежащего представления у пользователя (например, «Календарь»). Апплеты отличаются от полных Java-приложений тем, что имеют ограничения по доступу к определенным ресурсам локального компьютера (таким, как файлы, модемы и др.) и запрет коммуникаций с другими компьютерами в сети (кроме того, с которого данный апплет послан). Такие приложения конфигурируются под собственный набор свойств (например, принтеры, драйверы видео, звука и т.д.). [20,с.250]

Для использования апп­лета нужен Web-браузер, поддерживающий язык Java и способный интерпретировать бай­товые коды. [29,с.28]

В конце концов, основная задача Java — поместить исполняемый код на web-страницы, обеспечив возможность взаимодействия страницы с пользователем. Помимо написания апплетов можно создавать и автономные программы, выполняемые без web-браузера. Например, если вы хотите написать приложение управления арендуемой собственностью, запускаемое независимо от наличия подключения к Интернету, в качестве языка программирования можно использовать Java. [1,с.275]

Загрузка апплета напоминает вставку рисунка на Web-страницу. Апплет становится частью страницы, а текст обтекает занимаемое им пространство. Изображение, реализуемое апплетом, становится динамичным. [29,с.28]

Оно реагирует на команды пользователя, изменяет в зависимости от
них свой внешний вид и выполняет обмен данными между компьютером, на котором выполняется апплет, и компьютером, где этот апплет посто­янно хранится. [29,с.28-29]

При работе с Java вы часто будете сталкиваться с понятием исполняемое содержание (executable content). Исполняемое содержание – это и есть все то, что представляет собой язык. Web – страница включает исполняемое содержание, которое посредством HTML в представленном виде Java – апплета. Содержание Java – кода существует на компьютере пользователя.

Когда разрабатывается код web – страницы, содержащий Java – апплеты, необходимо, чтобы этот код работал на удаленном компьютере независимо от того, что это за компьютер. В то время как большинство компиляторов осуществляют преобразование программ в машинно – зависимый код, средства разработки Java поступают иначе. Все Java – компиляторы преобразуют исходный текст программы специальный машинно – независимый модуль, называемый байт – код. Программное обеспечение браузера осуществляет преобразование байт – кода в машинный код, который может выполнять данный компьютер. Не компьютеры осуществляют чтение байт – кода, а браузер, поддерживающий Java. [1,с.277]

В информатике и программировании изменения происходят постоянно и с большой скоростью. Одним из самых значительных изменений за последние
двадцать лет стало появление общемировой сети Интернет и языка
программирования Java. [30,с.12]

3.2 Декларативные языки. Логические и функциональные

К логическим языкам относится язык Пролог.

Разработка языка Prolog началась в 1970 г. Аланом Кулмероэ и Филиппом Русселом в университете города Марсель, Франция. Они хотели создать язык, который мог бы делать логические заключения на основе заданного текста. Их работа была частично мотивирована желанием примирить использование логики в качестве декларативного языка представления знаний с процессуальным подходом к представлению знаний, который был популярен в Северной Америке в конце 1960-х и начале 1970-х годов. Название Prolog было выбрано Филиппом Русселом как аббревиатура от французского PROgrammation en LOGique (PROLOG) и первая реализация этого языка с использованием компилятора Николауса Вирта "AlgolW" была закончена в 1972 году.

Интерес к Prolog поднимался и затихал несколько раз, энтузиазм сменялся жёстким неприятием. Наиболее высокий интерес к языку Prolog, как к языку будущего, возник в 1980-х годах во время разработки японской национальной программы «компьютеры пятого поколения». В рамках этого проекта разработчики надеялись, что с помощью Prolog можно будет сформулировать новые принципы, которые приведут к созданию компьютеров более высокого уровня интеллекта. [40,с.4]

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

ПРОЛОГ является языком исчисления предикатов. Предикат – это логическая формула от одного или нескольких аргументов. [42,с.3]

Примеры предикатов: хищник (X) , ФИО (X,Y,Z)

Предикаты, которые нельзя разбить на отдельные компоненты, называют атомарными. Сложные формулы строятся путем комбинирования атомарных предикатов логическими соединителями И, ИЛИ и НЕ. Одноместный предикат при подстановке в него значения переменной становится «нульместным», т.е. высказыванием-предложением, которое является истинным или ложным: хищник (тигр). [42,с.3]

Алфавит логики первого порядка составляют следующие символы:

1. переменные (u, v, x, y, z);

2. константы (a, b, c, d);

3. функциональные символы (f и g);

4. предикатные символы (p, q и r);

5. пропозициональные константы истина и ложь (true и false);

6. логические связки отрицание, конъюнкция, дизъюнкция, импликация;

7. кванторы: существования, всеобщности;

8. вспомогательные символы (, ), ,. [41,с.15-16]

Программа на языке Prolog состоит из множества предложений (фраз). Каждое предложение может быть одного из трех типов: это либо факт, либо правило, либо запрос. Факт — это фраза без условий, утверждение о том, что соблюдается некоторое отношение. Он записывается как имя предиката, за которым следует заключенный в скобки список аргументов. Каждый факт должен заканчиваться точкой. [40,с.19]

Правило-это факт, истинность которого зависит от истинности других фактов. Состоит из головы и тела, разделенных знаком :- , который читается как «если» и соответствует импликации. Голова правила-это предикат, а тело правила-последовательность предикатов, разделенных запятыми. Правило должно заканчиваться точкой, а запятая в теле правила означает конъюнкцию (логическое И).

Запрос-это последовательность предикатов, разделенных запятыми или точкой с запятой и завершающаяся точкой. На естественном языке запятая соответствует союзу «и». Точка с запятой соответствует союзу «или».Предикат запроса называется целью. Простые запросы, не содержащие никаких переменных, допускают лишь два возможных ответа: "true" или "false". В случае ответа "true" говорят, что запрос завершился успехом, цель достигнута. Использование переменных в запросах позволяет задавать более сложные вопросы. [40,с.20]

ПРОЛОГ может использоваться при разработке экспертных систем, а также для следующих задач: доказательства теорем и вывода решений в задачах, создания пакетов символьной обработки при решении уравнений, дифференцировании, интегрировании и т. д., разработки упрощенных версий систем ИИ, создания естественно-языковых интерфейсов для существующих программ, перевода текстов с одного языка на другой, в том числе – с одного языка программирования на другой. [42,с.1-2]

В основе декларативных языков лежит формализованная человеческая логика. Человек лишь описывает решаемую задачу, а поиском решения занимается императивная система программирования. [41,с.10]

К функциональным языкам относят язык Лисп.

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

Все эти функции могут быть запрограммированы с помощью таких языков, как Мнемокод, Фортран, Алгол и др., однако существуют и специальные языки, ориентированные на обработку списков. К их числу относится Лисп– язык для обработки списков, созданный в 60 – х годах в Массачусетском технологическом институте (США). [23,с.186-187]

В нашей стране программирование знакомство с языком Лисп состоялось из первых рук. В конце 1968 года Джон Мак-Карти лично познакомил
программистов Москвы и Новосибирска с Лиспом, что побудило к реализации
отечественных версий языка. [24,с.117]

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

Под литерой будем понимать любой печатный знак из алфавита. Состав алфавита произволен. Пробел между печатными знаками также считается литерой. В рукописном тексте для большей четкости пробел изображают зна­ком —. В печатном тексте эта литера обнаруживается совершенно явственно, так как каждый печатный знак имеет определенное поло­жение в строке. Переход с одной строки текста на другую рассматривается как пробел. [25,с.8]

Алфавит:

Буквы:ABCDEFGHIJKLMNOPQRSTUVБГДЖЗИЙЛПФЦЧШЩЫЬЭЮЯ

Так же это цифры: 012345678;ограничители лиспа: ( ) . — nl; прочие литеры: + — X / , : ; =

Простейший синтаксической единицей языка является атом – последовательность символов, заключенный между двумя разделителями, в качестве которых могут быть круглые скобки или пробелы. [25,с.8]

В языке программирования лисп атомы-это наборы символов и числа, т.е. те простейшие элементы. Из которых состоят боле сложные структуры данных-списки. Списки состоит из атомов. [20,с.257]

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

Атомы, имеющие фиксированный смысл в языке лисп, т. е. наименования стандартных или, как их еще называют, встроенных констант и функций, при некоторых условиях могут быть использо­ваны программистом для обозначения других объектов, вводимых им самим. [25, с.9]

При выполнении большинства функций вначале вычисляются фактические параметры, а затем выполняются действия, предписанные данной функции. Такие - обычные. Однако есть функции, у которых вычисляются лишь некоторые фактические параметры, либо параметры вовсе не вычисляются. Такие функции- особыми. Аргументом обычной функции будем называть значение фактического параметра, а аргументом особой функции — сам фактический параметр. [26,с.7]

Одной из особых функций является QUOTE, эта функция имеет один фактический параметр, который и выдается в качестве значения, не будучи вычисленным. Эта функция нужна для того, чтобы явно задавать необходимые значения. [26,с.7]

Функция CAR. Эта функция выделяет первый элемент из значения своего единственного ар­гумента, если это значение — непустой список. Если же значение аргумента - атом, а не список, то значение функции CAR не определено. [25]

Функция cdr возвращает хвост списка, являющегося значением её единственного аргумента (хвостом, или остатком списка является список без своего первого элемента). [27,с.9]

Функции CAR и CDR позволяют добраться до любого элемента любого списка. Для упрощения записи таких многократных обращений к функ­циям CAR и CDR применяются наименования функций вида CAAR (двукратное обращение к CAR), CDAR (обращение сначала к CAR - внутреннее обращение, а затем к CDR), СADDAR и др.

Пустой список, который мы обозначали до сих пор так: ( ) , имеет второе обозначение, а именно NIL.Оба обозначения совершенно эквивалентны.

Атом NIL-это пример встроенной константы. Ее значением является пустой список, т. е. сам NIL. Это свойство атома NIL позволяет обходиться без функции QUOTE, когда нам нужно использовать в качестве значения сам этот атом. Другими словами, выражения

(QUOTE NIL) и NIL

эквивалентны и следует ползоваься вторым из них как более простым. [25,с15-16.]

Функция cons от двух аргументов с обращением (cons e1 e2) строит новый список, первым элементом которого является значение первого аргумента е1, а хвостом – значение второго аргумента е2. Эта функция включает заданный элемент (значение выражения е1) в начало списка, являющегося значением е2. Заметим, что функция-конструктор cons (сокращение от англ. construct) реализует обратное действие по отношению к car и cdr. [27,с.9]

Функции, вырабатывающие логическое значение, называются предикатами, выражения, принимающие только эти значения, - логическими выражениями. Очень часто применяемая функция ATOM может служить примером предиката ее аргументом (единственным) может быть любое выражение.

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

Другим фундаментальным предикатом является функция EQ. Она дает ответ на вопрос, нашли ли мы то, что искали. [25,с.18-19]

Если известно, что один из аргументов–идентификатор, то значение функции будет истинным при равенстве ее аргументов и ложным в противном случае. Если аргументы не идентификаторы, то значение функции может быть и истинным, и ложным. [26,с.9]

Несмотря на то, что Лисп потерял главенствующую роль как язык программирования задач искусственного интеллекта, в силу ряда своих качеств он остается языком, удобным для изучения функционального программирования. [27,с.4]

Вывод третьей главы

В основе идеи объектно–ориентированного программирования скрывается суть объекта. Объект–это то, что соединило в себе поля и методы. Объектно–ориентированные языки программирования, такие как C++, Visual Basic, Delphi, Java, пользуются большим интересом среди программистов. Данные языки интересуют как молодых специалистов, так и программистов со стажем. Потому что эти языки дают возможность использовать преимущество объектно–ориентированного подхода, как на шаге проектирования и конструирования программных систем, так и на шаге их реализации тестирования и сопровождения.

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

Заключение

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

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

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

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

  1. [39] Ананьев А.И., Федоров А.Ф. Самоучитель Visual Basic 6.0.-СПб.:БХВ-Петербург, 2005.-624 с.
  2. [35] Бакнелл Джулиан М. Фундаментальные алгоритмы и структуры данных в Delphi: Пер.с англ/Джулиан М. Бакнелл.-СПб.:ООО «ДиаСофтЮП», 2003.-560 с.
  3. [27] Большакова Е.И., Груздева Н.В. Основы программирования на языке Лисп:Учебное пособие.-М.:Издательский отдел факультета ВМК МГУ имени М.В. Ломоносова (лицензия ИД №05899 от 24.09.2011);МАКС Пресс, 2010.-112 с.
  4. [32] Введение в программирование:Учеб.пособие для уч.сред. и ст. шк. возраста/Авт.-сост. В.А. Гольденберг.-Мн.:ООО «Харвест», 1997.-528 с.
  5. [16] Гончар Д.Р. Методы планирования вычислений в САПР систем реального времени, LAP Lambert Academic Publishing, 2011.-136 с.
  6. [24] Городняя Л.В., Березин Н.А. Введение в программировании на Лиспе.-М.:Национальный открытый университет. «ИНТУИТ», 2007.-118 с.
  7. [3] Дейтел Х.М., Дейтел П.Дж. Как программировать на С++: Пятое издание. Пер. с англ.-М.:ООО «Бином-Пресс», 2008 г.-1456 с.
  8. [31] Докукина Т.К. Программирование и алгоритмические языки-2-е изд.перераб. и доп.-М.: «Машиностроение»,1992.-496 с.
  9. [12] Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ:Справочник.-М.:Наука.Гл.ред.физ.-мат.лит., 1989.-240 с.
  10. Жданова Т.А. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. – 56 с.
  11. [44/28] Кадырова Г.Р. Основы алгоритмизации и программирования: учебное пособие/Г.Р. Кадырова.-Ульяновск: УлГТУ, 2014.-95 с.
  12. [5] Карпов В.Я. Алгоритмический язык Фортран (фортран-Дубна),М.:Наука.Гл.ред.физ.-мат.лит.,1976.-192 с.
  13. [17] Кашаев С.М. Паскаль для школьников. Подготовка к ЕГЭ/ С.М. Кашаев. Л.В. Шерстнева.-3-е изд., перераб. и доп.- СПб.;БХВ- Петербург,2014.-352
  14. [11] Кетков Ю.Л., Кетков А.Ю. Практика программирования: Бейсик, С, Паскаль, самоучитель.-СПб.:БХВ-Петербург, 2001.-480 с.
  15. [37] Культин Н.Б. Visual Basic. Освой на примерах.-СПб.: БВХ-Петербург, 2004.-288 с.
  16. [25] Лавров С.С., Силагадзе Г.С. Автоматическая обработка данных. Язык Лисп и его реализация. М.:Наука.Гл.ред.физ.-мат.лит. 1978.-176 с.
  17. [19] Макаров В.Л. Программирование и основы алгоритмизации: Учеб.пособие.-СПб.:СЗТУ, 2003.-110 с
  18. [7] Немнюгин М.А., Стесик О.Л. Современный Фортран. Самоучитель.- СПб.: БХВ-Петербург, 2004.-496 с.
  19. [14] Немнюгин С., Перколаб Л. Изучаем Turbo Pascal.-СПб.: Питер 2004.-313 с.
  20. [41] Основы программирования на языке Пролог: курс лекции:учеб. Пособие для студентов, вузов, обучающихся по специальности в обл. информ. технологии/П.А. Шрайнер.-М.:Интернет- Ун-т Информ. Технологии. 2005.-176 с.
  21. [18] Павловская Т.А. С/С++. Программирование на языке высокого уровня.-СПб.: Питер, 2004.-461 с.
  22. [15] Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. 2-е изд.-СПб.:Питер 2010.-464 с.
  23. [6] Первин Ю.А. Основы Фортрана М.:Наука.Гл.ред.физ.-мат.лит. 1972.-216 с.
  24. [1] Перри Г. Самоучитель программирования.-СПб.: Питер, 2002.-368 с.
  25. [33] Пестриков В.М., Маслобоев А.Н. Delphi на примерах.-СПб.:БХВ-Петербург, 2005.-496 с.
  26. [21] Программирование и основы алгоритмизации:Для инженерных специальностей технических университетов и вузов./А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань:Изд-во Казанского национального исследовательского технического ун-та-КАИ, 2003.-153 с.
  27. [30] Роганов Е.А. основы информатики и программирования.-М.:национальный Открытый Университет «ИНТУИТ», 201.-336
  28. [13] Семашко Г. Л., Салтыков А. И. Программирование на языке Паскаль. М.: Наука. Гл. ред. фив.-мат. лит., 1988.— 128 с.
  29. [26] Семенов М.Ю. Язык Лисп для персональных ЭВМ.-М.:Изд-во Моск.ун-да, 1989.-74 с.
  30. [23] Сергеев Н.П., Домнин Л.Н. алгоритмизация и программирование: Учебное пособие для вузов.-М.:радио и связь. 1982.-232 с.
  31. [43] Терминологический словарь по основам информатики и вычислительной техники/А.П. Ершов, Н.М. Шанский, А.П. Окунева, Н.В. Баско; Под ред. А.П. Ершова, Н.М. Шанского.-М.:Просввещение, 1991.-159 с.
  32. [20] Толковый словарь по информатике/Г.Г. Пивняк, Б.С. Бусыгин, М.М. Дивизинюк и др.-Д;Натс. Горный. ун-т, 2008.-599 с.
  33. [36] Фленов Н.Е. Библия Delphi.-2-е изд., перераб. и доп.-СПб.:БХВ-Петербург,2008.-800с
  34. [45] Фридланд А.Е. Информатика и компютерная технология:Основные термины:Толков. слов.: Более 1000 базовых понятий и терминов.-3-е изд., испр. и доп./А Я. Фридланд, Л.С. Ханамирова, И.А. Фридланд.- М.:ООО «Издательство Астрель»: ООО «Издательство АСТ 2003».-272 с.
  35. [45] Фридланд А.Е. Информатика и компютерная технология:Основные термины:Толков. слов.: Более 1000 базовых понятий и терминов.-3-е изд., испр. и доп./А Я. Фридланд, Л.С. Ханамирова, И.А. Фридланд.- М.:ООО «Издательство Астрель»: ООО «Издательство АСТ 2003».-272 с.
  36. [40] Хабаров С.П. Интеллектуальные информационные системы. PROLOG-язык разработки интеллектуальных и экспертных систем: учебное пособие/С.П.Хабаров.-СПб.СПбГЛТУ,2013.-138
  37. [29] Хорстман Кей С., Корнелл Гари Java 2. Библиотека профессионала, том 1. Основы, 7-е изд.: Пер. с англ.-М.:Издательский дом «Вильямс», 2007.-896 с.
  38. [38] Шевякова Д.А., Степанов А.М., Карпов Р.Г. Самоучитель Visual Basic 2005/ Под общ. ред. А.Ф. Тихонова.-СПб.: БХВ-Петербург, 2006.-576 с.
  39. [34] Шупрута В.В. Delphi 2006 на примерах.-СПб.: БВХ-Петербург, 2006.-528с.
  40. [42] Бураков М.В. Язык логического программирования Пролог [Электронный ресурс] -URL: http://www.ict.edu.ru/ft/005578/byrakov.pdf (дата обращения 16.01.2018).
  41. [2] Кернигал Б.,Ритчи Д. Язык программирования Си [Электронный ресурс] - URL: http://people.toiit.sgu.ru/Sinelnikov/PT/C/Kern_Ritch.pdf (дата обращения 16.01.2018).
  42. [22] Хилл М.,Страустрап Б. С++ [Электронный ресурс]. - URL: https://royallib.com/book/straustrap_byarn/spravochnoe_rukovodstvo_po_C.html (дата обращения 16.01.2018).
  43. [8] Шнейвас А.Б. Основы программирования [Электронный ресурс]. - URL: http://www.astro.spbu.ru/sites/default/files/lecture1a.pdf (дата обращения 16.01.2018).

Приложение №1

Допустимые символы фортрана

26 прописных букв латинского алфавита

10 арабских цифр

Служебные знаки

A,B,C,D,E,F,G,H,I

,J,K,L,M,N,O,P,R,

S,T,U,V,W,X,Y,Z

0,1,2,3,4,5,6,7,8,9

+ плюс

- минус

/ слэш (знак деления)

* звездочка (знак умножения)

( открывающаяся скобка

) закрывающаяся скобка

= знак присваивания

. точка

, запятая

$ знак доллара

` апостроф

Источник: Карпов В.Я. Алгоритмический язык Фортран.

Приложение №2

Основные ключевые слова фортрана

ADMIT

ALLOCATABLE

ALLOCATE

ASSIGN

ASSIGNMENT

ATEND

BACKSPASE

BLOCKDATA

CALL

CASE

CHARACTER

CLOSE

COMMON

COMPLEX

CONTAINS

CONTINUE

CYCLE

DATA

DEALLOCATE

DEFAULT

DIMENSION

DO

DOUBLE

ELSE

END

ENDFILE

END IF

END SELECT

ENTRY

EQUIVALENCE

EXIT

EXTERNAL

FORMAT

FUNCTION

GO TO

IF

IMPLICIT

INCLUIDE

INQUIRE

INTEGER

INTERN

INTERFACE

INTRINSIC

LOGICAL

MAP

MODULE

NAMELIST

NONE

OPEN

OPTIONAL

PARAMETER

PAUSE

POINTER

PRINT

PRECISION

PROCEDURE

PROGRAM

READ

REAL

RECORD

RESURCIVE

RETURN

REWIND

SAVE

STOP

STRUCTURE

SUBROUTINE

TARGET

THEN

TYPE

UNION

USE

WHILE

WRITE

Источник: Немнюгин М.А., Стесик О.Л. Современный Фортран.

Приложение №3

Символы арифметических операций

Символ

Пример

Операция

Приоритет

операции

*

/

+

-

А ┐ В

А * В

А / В

А + В

А - В

Возведение в

степень

Умножение

Деление

Сложение

Вычитание

Первый

Второй

Второй

Третий

Третий

Источник: Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ.

Приложение №4

Операторы С

Оператор

Описание

Оператор

Описание

++

Увеличение на 1

&&

Логическое И

--

Уменьшение на 1

!

Логическое отрицание

*

Умножение

(и разыменование)

?:

Условная операция

/

Деление

()

Группирование и

список аргументов

+

Сложение

[]

Индекс

-

Вычитание

.

Член структуры

%

Вычисление остатка

Указатель

=

Присваивание

+=

Присвоить левому операнду сумму обоих операндов

<

Меньше чем

-=

Присвоить левому операнду разность двух операндов

>

Больше чем

*=

Присвоить левому операнду произведение двух операндов

<=

Меньше или равно

%=

Присвоить левому операнду остаток от деления левого операнда на правый

==

Равно

>>=

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

Продолжение Приложения №4

!=

Не равно

<<=

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

Поразрядное ИЛИ

^=

Присвоить левому операнду значение, полученное путем применения поразрядного ИСКЛЮЧАЮЩЕГО ИЛИ к двум операндам

&

Поразрядное И

&=

Присвоить левому операнду значение, полученное путем применения поразрядного И к двум операндам

^

Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ

│=

Присвоить левому операнду значение, полученное путем применения поразрядного ИЛИ к двум операндам

~

Поразрядное отрицание (инвертирование внутреннего двоичного кода)

Оператор последовательности выражений (оператор «запятая»)

>>

Поразрядный сдвиг вправо

(type)

Преобразовать в тип данных

<<

Поразрядный сдвиг влево

(sizeof)

Определить размер типа

Логическое ИЛИ

Источник: Перри Г. Самоучитель программирования.