Форум программистов, компьютерный форум CyberForum.ru

Таблица символов для компилятора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хэш код для нормализованного вектора http://www.cyberforum.ru/cpp/thread1778420.html
Мне нужно генерировать 64-разрядный хэш для трехмерных нормализованных векторов (double). Хэши должны быть равны если сгенерированы из одного или равных (поэлементно) векторов. У кого какие мысли? Может есть стандартный алгоритм? Да и ещё - после генерации 64-разрядного хэш-кода я увязываю его с 64-разрядным "ключевым сидом" методом XOR и далее сливаю в 32-битное значение применяя XOR к...
C++ Немного про std::string Привет, читал про std::string на разных сайтах. 1. Там говорят, С++ 11 гарантирует, что std::string будет stored contiguously in memory. В этом я не сомневаюсь, но каким еще образом можно в памяти хранить std::string? 2. Говорят, что std::string на самом деле имеет null-terminator на конце. Это так? Вроде да, я в этом немного убедился в своей студии. Сделал четыре std::string'a, через... http://www.cyberforum.ru/cpp/thread1777516.html
Объединение нескольких png файлов в один png-файл C++
В общем надо написать програмулину, которая объединяет несколько png файлов (ширина и высота одинаковы у изображений) в один png-файл. Пример: Есть пара png-картинок: :p, :D, :(, =-O, :yes:, :swoon: Итоговое изображение должно выглядеть примерно как-то так: :p :D :( =-O :yes: :swoon: Видел примеры кусков как это реализовано на яве, но так как я в ней вообще не разбираюсь, то ничего в...
C++ Как операционная система выделяет виртуальную память процессу?
Добрый вечер, хотел уточнить насчёт адресации: создаётся экземпляр win32 программы, выделяет процесс и 1 поток - ОС даёт процессу виртуальное адресное пространство в 4 ГБ - другими словами адрес, что придёт через new будет от 0..size_t::max за исключением первых 256 - как служебные - но каждому 0x001 адресу, что мы видим в студии не соответствует реальный адрес на ОЗУ - так как ОС защищает от...
C++ Ошибка: invalid conversion from "int" to "SDL_RendererFlip" http://www.cyberforum.ru/cpp/thread1776002.html
Скриншот приложен, Вот страница, откуда я брал этот код Подскажите что делать
C++ Icu итератор Здравствуйте. Подскажите как с помощью icu проитерировать посимвольно UnicodeString и на выходе получить то, что сразу можно в обычный string запихнуть. Нагуглил такой вариант: #include <unicode/unistr.h> #include <unicode/uchriter.h> /******/ icu::UnicodeString ustr("Привет Мир! Hello World! 世界,你好!"); const UChar *testText = ustr.getTerminatedBuffer(); ... подробнее

Показать сообщение отдельно
nonedark2008
881 / 620 / 125
Регистрация: 28.07.2012
Сообщений: 1,657
11.07.2016, 20:24     Таблица символов для компилятора
Havana, хмм. Если так возможно, то бы посоветовал посмотреть в сторону llvm. С ним будет проще в плане генерации кода и некоторых абстракций языка.
Цитата Сообщение от Havana Посмотреть сообщение
Если вы знаете, как это можно сделать проще/сложнее/иначе я буду благодарна за идеи.
В этом случае ваша таблица превращается в дерево.
Корень - глобальная область видимости, узлы - функции, циклы (различные выражения со своими областями видимости).
Когда идет обработка какого-то выражения, то для него в этом дереве находится его область видимости (либо поиском по уникальному имени, либо просто привязать указатель заранее). Если встречаем какое-то имя, то ищем его в текущей области, не нашли - поднимаемся выше по дереву.

Цитата Сообщение от Havana Посмотреть сообщение
Таблица должна быть глобальной для других классов, она не должна создаваться заново при добавлении каждого символа и при этом должна быть возможность создавать временные таблицы для подпрограмм.
Они не временные. Хотите использовать синглтон - используйте (да там простая глобальная переменная подойдет в общем-то), но в начале лучше разобраться что за структура данных им будет поддерживаться.
Я бы посоветовал как пример посмотреть реализацию каких-нибудь компиляторов попроще, для того же llvm есть кучка неплохих примеров (на английском конечно).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru