Битовые операции в C++

Недавно понадобилось использовать упаковку двух int32_t в int64_t, понял что недостаточно знаний в области битовых операций, изучил, теперь сделаю заметку, все очень просто

Функции с переменным числом аргументов C++

Давно не использовал переменное количество аргументов в функции, а совсем недавно пришлось и … выяснилось что подзабыл, пришлось лезть в поисковик. А теперь сделаю заметку для себя и других

Исполнение PHP скриптов на Windows

Совсем недавно вопросы использования различных языков вызывали у меня множество вопросов и непонимания. Хоть я уже не первый год занимаюсь программированием и вроде бы уже не совсем новичок, однако из-за нежелания разбираться в тонкостях установки мне казалось это темным лесом. Но сегодня я решил начать это исправлять, с PHP оказалось все банально просто

Разработка компилятора. Организация лексического анализа

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

Разработка компилятора. Оптимизатор

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

Разработка компилятора. Синтаксический анализатор

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

Разработка компилятора. Контекст исполнения

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

Разработка компилятора. Стековая виртуальная машина. Состав

После рассмотрения статьи о теоретических основах стековой виртуальной машины, необходимо рассмотреть из чего состоит стековая виртуальная машина. На протяжении долгого времени мы не могли с точностью определиться что же должно быть в виртуальной машине, и только в версии 0.9.2 сформировалось определенное понимание.

Разработка компилятора. Стековая виртуальная машина. Основы

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

Разработка компилятора. Сборщик мусора

Сборка мусора не маловажная часть управления памятью, оперативная память не бесконечна. Говоря «сборщик мусора» обычно подразумевается объект сборщика мусора, который сам соберет все что наделал программист))