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

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

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

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

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

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

до тех пор, пока созданный объект нужен для работы программы, программа обращается к нему через ранее сохранённый указатель;

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

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

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

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

Международная организация по стандартизации (International Organization for Standardization, ISO) - международная организация, занимающаяся выпуском стандартов;

Американский национальный институт стандартов (англ. American National Standards Institute, ANSI) - объединение американских промышленных и деловых групп, разрабатывающее торговые и коммуникационные стандарты;

Европейская ассоциация производителей (European Computer Manufacturers Association, ECMA) - ассоциация, деятельность которой посвящена стандартизации информационных и коммуникационных технологий.

.7 Критерий переносимость кода описывает каким образом достигается переносимость исходного кода программ на различные аппаратные платформы (например, x86-64, IA32, IA64, PowerPC и др.) или операционные системы (например, Windows, Linux, BSD, Mac OS, Solaris и др.).

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

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

.8 Следующими тремя важными критериями были выбраны скорость разработки ПО, скорость исполнения конечной программы и количество потребляемой памяти программой. Значения этих параметров для каждого из сравниваемых языков программирования были взяты из сравнительных тестов производительности этих языков [15]. Языки сравнивались на одной аппаратной и программной конфигурации, и на одинаковых задачах (например, поиск по бинарному дереву, вычисление регулярного выражения и др.), более подробно тесты и сравнение описаны в [15].

 

Программа формирования основного меню

 

.1 Основное окно программы, представленное на рисунке 6.1, состоит из нескольких элементов интерфейса:

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

между кнопок отображается счётчик заданных вопросов и общее количество доступных вопросов;

сверху находится поле, в котором отображается текущий вопрос экспертной системы касательно выбора языка программирования;

в центре находятся варианты ответа на вопрос, из которых в зависимости от вопроса можно выбрать один, или же несколько вариантов;

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

Рисунок 6.1 - Главное окно программы

 

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

 

Рисунок 6.2 - Окно программы с выбранными ответами

Рисунок 6.3 - Пример вопроса по выбору языка программирования

 

Рисунок 6.4 - Пример вопроса по выбору языка программирования

Рисунок 6.5 - Пример результирующего выбора программы

 

Программная реализация механизма выработки решения

 

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