avva: (Default)
(интересно может быть только программистам)

(продолжение этой записи)

-----------------------------------coding--------------------

Мне нужна хэш-таблица для каждой среды. Поправка: на самом деле мне нужна структура, которая умеет две вещи. Вернуть номер символа; нумерация начинается с 1, если символ не найден, он автоматически добавляется с новым номером и номер возвращается. И вернуть наибольший номер до сих пор - чтобы знать, сколько места отвести для среды. Я воспользуюсь для этого все той же хэш-таблицей из C++ в symbols.cc. Я был уверен, что в этом припадке полностью от нее избавлюсь, но вышло по-другому. Тем не менее, я спрячу всю C++-ность, сделаю интерфейс очень C-шным:
Read more... )
avva: (Default)
(интересно будет только программистам)

(ЖЖ не дал мне запостить это одной записью, говорит "post too large". Разбиваю на две части поэтому)

Продолжение наброска. Весь код, как и раньше, выкладывается на github/avorobey/sketch.

-----<<<<<<< предыдущий припадок-----------------------<<<<<< первый припадок---------------

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

Read more... )
avva: (Default)
(интересно будет только программистам)

Продолжение наброска.

Я пометил все записи про набросок тагом 'набросок', и буду впредь так делать.
Весь код, как и раньше, выкладывается на github/avorobey/sketch.

Спасибо всем, кто в прошлый раз указал на баги, критиковал прозу, и вообще высказывал свои мысли о проекте.

-----<<<<<<< предыдущий припадок-----------------------<<<<<< первый припадок---------------

Примерный план: в этом припадке я хочу немного замедлиться и расширить поддержку некоторых базисных типов данных, которые я раньше пропустил: булевы значения, знаки (characters), векторы. Реорганизовать код, выделить встроенные функции в отдельный файл. Добавить много простых стандартных встроенных функций. Возможно, добавить простую версию определения новой функции (lambda). Не собираюсь делать ничего связанного с лексической видимостью, замыканиями итд. - это будет в следующем припадке, и я хочу хорошо подготовить для него почву.
Read more... )
avva: (Default)
(интересно будет только программистам)

Продолжение наброска.

У наброска появилась страница, на которой можно смотреть на весь код, как на текущее состояние, так и
на прошлые припадки (теги fit-1, fit-2 итд.).

-----<<<<<< предыдущая часть, там контекст и начало работы---

План работы (возможно, изменится): к концу этого припадка я хочу иметь возможность сказать (+ 3 5) и (car '(1 2)) и (set! y 13) и (+ y 22). Часть кода, который это воплотит, будет впоследствии переписана заново для поддержки лексической видимости и хвостовой рекурсии, которой сейчас еще не будет. Тот код, который предназначен на выброс, я напишу как можно проще и быстрее.
Read more... )
avva: (Default)
(может заинтересовать только программистов, и то мало кого)

Я хочу написать небольшой игрушечный интерпретатор Схемы на C. Но уже месяц прокрастинирую, не написав не строчки. Буду мотивировать себя описанием процесса здесь. Объяснять самому себе, почему я хочу это сделать так, а не иначе, и писать код одновременно с этим. В несколько заходов с продолжениями. Например, в восемь припадков.

FAQs: технические подробности, много булшита и чуть-чуть кода )

June 2025

S M T W T F S
123 4 5 6 7
8 910 11121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 11th, 2025 02:43 pm
Powered by Dreamwidth Studios
OSZAR »