Здесь выкладываются достойные внимания работы Смагулова Азамата, посвящённые языку программирования Форт. Последнее обновление: 20 августа 2005

Браузер

Как и предупреждал Андрей Черезов, это заняло много времени. И конца-края работе не видно… Ночное времяпрепровождение на ближайшее десятилетие я себе обеспечил. Но, тем не менее я написал браузер на Форте, местами он даже работает. Отдельные моменты его реализации, на мой взгляд, интересны и вроде бы даже оригинальны, особенно применение автоматов и таблиц переходов в сочетании с т. н. накопителями (которые на самом деле являются обычными строками со счётчиком, но об этом попозже) и наборами (которые тоже на самом деле словари). Ниже будет дано очень краткое описание алгоритма работы, интересующиеся могут заглянуть в пояснительную записку к дипломному проекту.

Первичное разбиение

Чтобы проанализировать задачу, упростим требования. Предположим, что нужно сделать конвертор HTML-страниц в BMP. Для такой программы выделяем такие подзадачи:

  1. Загрузчик (адрес→исходный текст)
  2. Сканер (исходный текст→дерево тэгов)
  3. Обработчик дерева тэгов (дерево тэгов→макет страницы)
  4. Просмотрщик (макет страницы→графическое представление)

Промежуточные структуры. Макет – набор команд для отрисовки страницы, обычно выглядит примерно так:


прямоугольник в (1,1)-(100,100)
надпись "Callahan" в (1,1).

Дерево тэгов:

Загрузчик

Загружает в память исходные тексты страниц и сопутствующие картинки. Можно было бы и wget использовать.

Сканер

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

Обработчик дерева тэгов

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

Просмотрщик

Выполняет команды макета по отрисовке страницы. Можно рисовать только видные в окне блоки.

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

Возможности программы

На момент возможности мизерны, но тем не менее:

Установка, работа с программой

Распакованные исходники поместить в папку "devel\~profit". Запускать "prog\browser\browser.f". Проверено на 16 билде SPF 4. Глюков в программе ещё очень и очень много. В частности:

Сама программа выглядит так:

Исходные тексты и пояснительная записка

Всё в Rar-архивах.
Программа и библиотеки к ней
Скомпилированный файл
Пояснительная записка к диплому "Разработка браузера" в формате MS Word
Пояснительная записка в формате PDF

Связаться со мной можно по электронной почте: azekeProfit@gmail.com