Программа по выбору языка программирования

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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

 

Выбор и обоснование механизма вывода решения

 

.1 Выбор языка программирования осуществляет на основе следующих критериев:

парадигма языка программирования;

вид типизация;

компилируемость или интерпретируемость кода;

управление памятью;

стандартизация;

переносимость кода;

скорость разработки;

скорость исполнения;

количество потребляемой памяти.

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

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

Парадигма программирования определяет то, в каких терминах программист описывает логику программы. Существует несколько парадигм программирования, а именно:

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

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

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

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

) Рефлексивное программирование подразумевает возможность программы на данном языке оперировать собственным кодом как данными.

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

статическая типизация - здесь переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция - возвращать значения только этого типа);

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

.4 Следующим критерием является возможность компиляции / интерпретации исходного кода языка программирования. Этот критерий также влияет на критерий скорость исполнения, описанный далее.

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

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

.5 Следующим немаловажным критерием было выбрано управление памятью, которое непосредственно влияет на такой критерий, как скорость разработки. Здесь описывается, поддерживает ли язык программирование возможность авто?/p>