Спонсоры сайта:

Наличие этой страницы в поиске?

Информеры ТИЦ и PR

  Yandex ТИЦ:  
   Google PR:  

Путешественникам, меломанам, бизнесменам, вебмастерам, новости.

Содержание | <<< | <<<

Расширение Little C





Расширять возможности интерпретатора Little С можно в двух направлениях: добавлять в него новые средства языка С и дополнительные средства программирования. Эти усовершенсгвования кратко рассматриваются в следующих разделах.

Добавление новых средств в язык Little C

Существует две категории операторов С, которые можно включить в Little С. В первую категорию входят дополнительные выполняемые операторы С, такие как switch, goto, break и continue. Если предыдущий материал изучен достаточно тщательно, то их добавление в Little С не составит большого труда.

Во вторую категорию входит поддержка новых типов данных. В интерпретаторе Little С для этого есть некоторые "зацепки". Например, в структуре var_type есть поле для типов переменных. Для включения дополнительных базовых типов (например, float, double или long) нужно просто увеличить размер поля до размера наибольшего элемента.

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

После реализации операций для работы с указателями легко добавить массивы. Память для массива следует выделять динамически, используя mallloc(), а указатель на массив нужно хранить в поле value структуры var_type.

Более трудная задача — добавление структур и объединений. Проще всего это сделать, используя malloc() для выделения объекту памяти, причем указатель на объект нужно сохранить в поле value структуры var_type. (Для обработки передачи структур и объединений в качестве параметров нужно будет написать специальную программу.)

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

Можно также добавить в Little С поддержку комментариев вида //. Это нетрудно сделать, изменив функцию get_token().

И наконец, в интерпретатор Little С несложно добавить средства, не входящие в состав языка С. Это особенно увлекательное упражнение — заставить интерпретатор делать то, что в языке не предусмотрено. Например, можно добавить конструкцию языка Pascal REPEAT-UNTIL, Если при этом возникают трудности, как средство отладки можно использовать вывод каждой лексемы в процессе ее обработки.

Создание дополнительных средств программирования

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


Содержание | <<< | <<<

C++ исходники. Все примеры - рабочие:

часы:

Dev C++ WinAPI Стрелочные часы Analog Clock

Dev C++ WinAPI Цифровые прозрачные часы. Текст на рабочем столе. Digital transparent clock. Text on desktop

Dev C++ OLE WinApi CALENDAR and DIGITAL CLOCK (15kb). Календарь и цифровые часы

Dev C++ OLE WinAPI Календарь и цифровые часы почти Vista SideBar всего 21kb

плееры:

Microsoft Visual C++ 2008 Direct Show DVD Mini Player 10.5kb

Dev C++ WinAPI Микро медиа плеер 3.5kb

Dev C++ WinAPI Мини медиа плеер 4.5kb

Dev C++ WinAPI Hint Всплывающая подсказка

Dev C++ WinAPI RECT - имитатор кнопки

Dev C++ WinAPI Заполнить ListBox

Dev C++ WinAPI Заполнить, редактировать, сохранить, загрузить ListBox (PlayList)

Dev C++ WinAPI Индикатор уровня

Dev C++ WinAPI MP3 Микро плеер Открыть с помощью...

Dev C++ WinAPI Своя кнопка

изображения:

Dev C++ GDI+ WinAPI Mini FotoResizer (16kb), изменяет размеры всех фото (JPG) до указанного размера в выбраной папке и её подпапках

Dev C++ WinAPI Сохранить BITMAP экрана, десктопа, окна, клиентской области.

Dev C++ WinAPI Изменить размер изображения BMP RESIZE. Загрузка изображений из ФАЙЛА, вывод на экран и сохранение в файл.

Dev C++ WinAPI Загрузка изображений из РЕСУРСОВ и вывод на экран.

Dev C++ GDI+ WinAPI. Преобразовать изображения из одного формата в другой (JPG в BMP, GIF, PNG и обратно ), используя дополнительные библиотеки GDI+. Загрузка изображений из файла и сохранение в файл.

Dev C++ GDI+ WinAPI масштабирование JPG RESIZE

Dev C++ OLE WinAPI. Преобразовать изображения из JPG в BMP, используя дополнительные библиотеки OLE. Загрузка изображений из РЕСУРСОВ и сохранение в файл.

Dev C++ OLE WinAPI преобразовать JPG в BMP, используя дополнительные библиотеки OLE. Загрузка изображений из ФАЙЛА и сохранение в файл.

Dev C++ OLE WinAPI масштабирование BMP RESIZE

разное:

Dev C++ WinAPI Dev C++ Преобразовать цвет точки экрана в HTML код

Dev C++ WinAPI NOTIFYICONDATA WS_EX_TOOLWINDOW Иконка в области уведомлений (notification area, tray, трей). Удалить с панели задач (taskbar).

Dev C++ WinAPI ShellExecute Создать ссылку на WEB сайт

Dev C++ WinAPI ShellExecute Создать окно со ссылкой на WEB сайт

Dev C++ WinAPI CreateProcess ShellExecute WinExec Запуск приложения из приложения

Dev C++ OLE WinAPI Создать регион Regions PopUp Меню Menu

Dev C++ FindFiles. Поиск файлов заданного типа (в примере *.JPG) в папке и её подпапках

библиотеки:

Скачать библиотеку GDI+ для Dev C++

Скачать справочнник с примерами языка C.