Найти в Дзене
Создаем архитектуру нашего игрового движка Часть 1.
Всем привет в данной части мы будем разрабатывать архитектуру нашего игрового движка. Некоторые щас могут сказать: "Зачем делать какую то архитектуру? Почему бы сразу не начать писать код?". Я им отвечу так, когда начинает накапливаться тонна кода, то начинаешь видеть все недостатки, но всегда есть но, ты их попросту не можешь исправить. Так что давайте позаботимся о архитектуре заранее, чтобы потом при разработке не плакать в подушку. Начнем с того, а какой паттерн будет использовать наша архитектура? Архитектура нашего движка будет использовать MVC ( Model View Controller) паттерн...
1 год назад
Паттерн программирования Observer.
Я заметил что в значительной части круга программирования о конкретных представителей паттернов часто говорят: синглтон ( одиночка), стратегия, фабрика и тд. Но почему то, меньше говорят о довольно нужных паттернах (я не отрицаю нужность паттернов перечисленных выше,). Вот сегодня и решил, что пора рассказать о паттерне под названием Observer. Observer - это паттерн который состоит из события, и подключенных методов объектов к этому событию. Также важно чтобы объекты были унаследованы от интерфейса который объявляет те самые методы которые можно подключить к событию...
1 год назад
Создание класса для работы с дробями на языке C#.
Всем привет! Как мы все знаем иногда, каким то программам нужны дробные числа типа 2/3, 1/3 и тд. Но вот незадача в C# нет стандартной поддержки данных чисел. Так что давайте напишем собственный велосипед для дробных чисел. Для начала создадим класс Fraction. Вот заготовка класса Fraction. class Fraction { int numerator ; int denominator; public int Numerator { get { return numerator; } set ...
200 читали · 1 год назад
А вам интересно и нравится ли программировать?
Опрос
1 год назад
Написание компилятора своего языка. Часть 3.2.
Всем привет! Как мы помним в предыдущей статье мы подготовились к написанию парсера, и именно в этой статье мы начнем с вами писать парсер. Сразу начнем писать код. Вот такой будет начальный код. public class Parser : Lexer { AST _abstract_syntax_tree; Node parentNode; SystemParserError systemErrors; public AST ast { get { return _abstract_syntax_tree; } } public Parser() : base ()...
1 год назад
Написание компилятора своего языка. Часть 3.1.
Всем привет. Это подготовительная статья перед написанием парсера, в этой статье говорится что такое парсер, что он делает, обсуждаются и пишутся необходимые компоненты перед написанием парсера. Парсер - это Часть программы, преобразующей входные данные в некий структурированный формат, нужный для задач последующего их анализа и использования. Технически, парсер выполняет синтаксический анализ данных. Наш парсер будет преобразовать поток токенов, который нам выдаст лексер, в Abstract Syntax Tree ( AST )...
1 год назад
Написание компилятора своего языка. Часть 2.
Всем привет в этой части я расскажу вам каким будет наш язык и напишем лексический анализатор ( лексер ). Для начала нужно определится что будет уметь наш язык. Уметь он будет достаточно для простого языка, а именно: Типы данных: программа(programm), функция (func) , целые числа (byte (1 byte) , word (2 byte) , int (4 byte), long (8 byte) ), числа с плавающий точкой ( float (4 byte), double ( 8 byte ) ), строковой тип (string), bool, структуры. Переменные: будут доступны как глобальные переменные, так и локальные...
1 год назад
Написание компилятора своего языка. Часть 1.
Всем привет в данном цикле статей мы будем писать компилятор под платформу .NET на языке C#. В первой части я вам расскажу о общем строении компилятора, в следующих частях уже расскажу каждый элемент подробнее. Исходя из картинки представленной сверху можно понять что сначала какой либо язык компилируется в сборку ( Assembly ), а дальше JIT Compiler компилирует в машинный код который исполняется на девайсах. Давайте подробнее рассмотрим каждый нас интересующий компонент на картинке. Assembly (сборка ) - это базовая структурная единица в ...
188 читали · 1 год назад