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

Теоретические основы реализации

Первым этапом разработки конвертера был анализ требований и их сопоставление с возможностями существующих языков программирования. К конвертеру предъявлялись следующие требования:

  • Кроссплатформенность;

  • Простота написания.

В качестве вариантов языков, на которых имелась возможность писать конвертер, рассматривались: C++, Visual Basic, и Java.

С++ как язык низкого уровня представляет интерес для написания конвертера, он удовлетворяет требованиям безопасности, высокой скорости разбора строк и высокой скорости работы интерфейса. Однако для реализации такого конвертера требуется использовать средства WinAPI[4], которые не отличаются простотой и главное, привязаны к платформе Microsoft.

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

И, наконец, язык Java позволяет писать программы, исполняемые на одноимённой виртуальной машине. Полная поддержка виртуальной машины гарантирована на ряде операционных систем, куда входит Windows, Linux, Solaris и Mac OS [1].

Таким образом, подытоживая всё вышеописанное, можно сделать вывод, что в соответствии с выдвинутыми требованиями наиболее подходящим для этого языком является Java[5].

Следующим этапом в разработке был анализ компонентов, необходимых для функционирования конвертера.

Первым из таких компонентов является графический интерфейс пользователя. Для его написания лучше всего подходит стандартный пакет javax.swing. Он содержит расширенный набор графических элементов управления [2]. Интерфейс должен содержать меню, вспомогательные окна и диалоги, поле для вывода исходного файла без форматирования и с форматированием. Другим важным компонентом конвертера должен быть синтаксический анализатор входного файла, который занимается преобразованием в WEB страницу. Так, как это достаточно большой участок кода, его лучше всего поместить в отдельный класс. Для обработки событий, в основном используются классы, реализующие интерфейс ActionListener, и только самые простые функции реализованы с помощью анонимных классов[6].

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

Програмная реализация

Выполнение программы начинается с запуска статической функции main(), которая выводит на экран окно конвертера. При загрузке окна происходит чтение настроечных файлов IDE.txt и KeyWord.txt, которые содержат информацию о языке программирования и среде разработки. Далее при открытии страницы происходит ее преобразование в html страницу. Так же реализуется возможность смены языка программирования и среды разработки. Текущая реализация предполагает превым делом задание установок и только потом открытие файла для форматирования. Теперь перейдем к описанию основных классов программы, в порядке их размещения в листинге.

class KeyTextHighlighting:

Данный класс является наследником класса JFrame и производит формирование графического интерфейса главной страницы приложения и содержит обработчики и вызовы всех остальных методов. Он же содержит точку входа в программу. При его выполнении создаются главные элементы программы: JTextArea inputFile и JEditorPane outputFile. В первый из этих классов загружается исходный файл без форматирования, а во второй HTML-страница с форматированием, так как этот класс поддерживает основные теги HTML.

class Settings:

Экземпляр данного класса загружает информацию о используемом язык е программирования из файла KeyWord.txt. В этом файле содержится одно число: 0 – язык программирования Java, 1 – C++, 2– C , 3 – CSharp. Затем загружается информацию о среде разработки из файла IDE.txt. В этом файле содержится одно число: 0 – оформление в стиле NetBeans, 1 – JBuilder, 2– VC++. Так же этот класс загружает массив ключевых слов из файлов javaKeywords.txt, cppKeywords.txt, cKeywords.txt, cSharpKeywords.txt в зависимости от используемой среды разработки. Этот массив создается после того как пользователь выбрал установки и файл для преобразования в HTML.

class Preference:

Реализует интерфейс ActionListener. В нем происходит формирование дополнительного окна для выбора среды разработки и смены текущей среды разработки на другую среду разработки.

class KeyWord:

Реализует интерфейс ActionListener. Данный класс формирует вспомогательное окно для выбора и смены языка программирования и дает пользователю возможность просмотреть файл с ключевыми словами. Посредством создания экземпляра класса ShowKeyWord.

class ShowKeyWord:

Расширяет JFrame и реализует интерфейс ActionListener. Показывает в новом окне используемые ключевые слова текущего языка программирования. На данном этапе изменение ключевых слов (редактирование, добавление новых слов, удаление) не предусмотрено в программе.

class SaveHtml:

Выводит диалог на основе JFileChooser, для сохранения HTML файла на компьютере пользователя. При этом файл для сохранения берется из JEditorPane outputFile. Расширение выходного файла – HTML. И при тестировании он открывался в InternetExplorer.

class OpenSource:

Выводит диалог на основе JFileChooser, для открытия исходного файла на комьпьютере пользователя. Затем происходит чтение данного файла и он записывается в JTextArea inputFile. При этом установлено ограничение на величину исходного файла-30000 символов, что составляет приблизительно десять страниц кода. Если файл больше чем 30000 символов выводится подсказка о невозможности выполнить форматирование и файл не форматируется (это реализовано для работы программы за приемлемое время- максимальное время работы программы при данном ограничении оказывается около 30 секунд, что вполне приемлемо).Далее происходит создание экземпляра класса toHTML, в котором и происходит разбор строки для формирования HTML-страницы. И после такого разбора происходит запись в JEditorPane outputFile.

class toHTML:

Производит синтаксический разбор входного файла и преобразует его в HTML страницу. Для этого сначала файл разбивается на строки с помощью метода split("\n") и далее каждая строка анализируется отдельно в рекурсивном методе parsing(myHTMLmas,type); где первая переменная содержит строку, а вторая тип строки. Тип равен 0, если строка может содержать любые элементы (ключевые слова, строки, заключенные в “ и комментарии вида /* */ и //). Тип равен 1, если строка является, строкой типа “.Тип равен 2, если строка является многострочным комментарием. Тип равен 3, если строка является комментарием типа //. Нахождение типа строки осуществляется в функции SearchFirstElement. Ключевые слова анализируются в функции KeyWordSearch.

ВЫВОДЫ

  1. Изучены основы языка JAVA.

  2. Изучены основы HTML.

  3. Написан простой конвертер на Java.

  4. Развитие возможно по следующим направлениям:

Интернационализация, улучшенная организация настроек, оптимизация работы программы