Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры курсовых работ по дисциплине Проектиров...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
581 Кб
Скачать

Введение

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

Язык С# и связанную с ним среду .NET Framework можно назвать самой значительной из предлагаемых в настоящее время технологий для разработчиков. Среда .NET является такой средой, которая была создана для того, чтобы в ней можно было разрабатывать практически любое приложение для запуска в Windows и других операционных системах, на которых установлена .NET, а C# является языком программирования, который был специально создан для использования в .NET Framework. Применение .NET избавляет от процедуры связывания объектных модулей, что делает возможным применение различных языков программирования, таких, как C#, F#, Visual Basic и других языков, в работе над одним проектом. Данное обстоятельство существенно сокращает время работы на каждой итерацией проекта и делает незаменимым использование программирования в .NET в различных технологиях программирования, в основе которых лежит частое обновление версий программы (XP-процесс, RAD и т. д.).

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

1 Постановка задачи

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

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

В качестве инструментария разработки были выбраны высокоуровневые языки программирования F# и C#.

Хотя F# и относится к мультипарадигмальным языкам программирования, тем ни менее он ориентирован в большей степени на функциональное программирование. Наличие проекции даёт возможность программисту реализовывать функции в наиболее естественной с точки зрения математики форме, делая процесс программирования проще. Нотация позволяет избегать «опасных» ситуаций при написании программного кода, так как исключает возможность менять состояние вычислительной системы, что может оказаться весьма полезным при реализации наиболее ответственных с точки зрения надёжности участков программы. К таким «участкам» можно отнести коды, реализующие параллельное программирование программных потоков. Суть проблемы состоит в том, что приходится учитывать взаимное влияние одновременно выполняемых потоков, которое может оказаться критическим относительно стабильности работы программы в целом. И главной причиной может стать изменение состояния системы программирования по вине программиста, который применяет управляющую структуру следования, свойственную императивному программированию. По этой причине, та часть программы, которая должна реализовать параллельный алгоритм, будет запрограммирована на языке F#.

Язык программирования C# относится объектно-ориентированным языкам программирования IV поколения. Он лишён некоторого наследия императивного программирования в виде наличия глобальных имён, свойственного языку C++, что повышает защищённость данных внутри объектов C#. Кроме того, C# был создан, как язык программирования для платформы .NET, предоставляющих программисту дополнительный сервис в виде возможности разрабатывать мульти платформенные приложения. Генерация программных сборок .NET вместо виртуальных машин (приложений для ОС) в процессе компиляции, избавляет от необходимости использовать редактор связей, что существенно ускоряет процесс разработки в целом и позволяет использовать различные языки программирования для разработки единого проекта.

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

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

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