Size: a a a

Compiler Development

2020 March 14

А

Алексей in Compiler Development
А не думать сразу как сделать БД, ЯП, ОС и формат хранения в одном флаконе
источник

АВ

Александр Вольнов in Compiler Development
Алексей
возьмите одну маленькую задачу
С этого я и начинал - формат моделей. Потом я заметил, что если добавить одну маленькую фичу, диапазон решаемых задач резко расширяется. Добавить ещё одну - опять расширяется. Потом со временем обнаруживается, что несколько фич в чём-то похожи друг на друга и их можно обобщить одной фичей, которая гораздо проще, чем сумма отдельных фич, но может рещать ещё больший круг задач.
Вот я последние несколько лет в свободное от других проектов время веду текстовый файл со всеми фичами, пытаясь покрыть как можно больший круг задач минимальным количеством фич. Я думаю, я уже близок к оптимуму и гармонии, и наконец скоро смогу приступить к подробному плану реализации, а затем и к самой реализации. А если бы я начал реализацию раньше, мне бы пришлось многое выкинуть в процессе объединения фич, которые я бы уже успел реализовать.
Также я определяю список фич, которые я буду реализовывать первыми, чтобы уже иметь что-то полезное на первых этапах реализации. Из этого и выделяются различные подмножества.
Самое минимальное и простое подмножество - это форматы хранения. Оно уже будет гораздо функциональнее всего того, что уже существует для сериализации, а я видел немало технологий, и гуглю постоянно, чтобы знать, что уже существует.
А базы данных и big data - это уже в перспективе.
источник

M

MaxGraey in Compiler Development
пару лет составлять фич лист что бы потом пару веков и поколений его реализовывать. А что, нормальный план, так решения что называются «на века» и делаются)
источник

АВ

Александр Вольнов in Compiler Development
MaxGraey
пару лет составлять фич лист что бы потом пару веков и поколений его реализовывать. А что, нормальный план, так решения что называются «на века» и делаются)
Я это время от времени эпизодически делаю. Сейчас больше времени уходит на библиотеку Intra, а до этого занимался синтезатором и созданием сайта. Сейчас закончу с библиотекой и более конкретно займусь языком. Я думаю, понадобится месяц, чтобы закончить фич лист + спецификацию бинарного формата + план разработки. Если бы я мог заниматься этим фулл-тайм, было бы во много раз быстрее.
Надеюсь, к маю или хотя бы к лету начну кодить парсер языка.
источник

p

polunin.ai in Compiler Development
Один человек фуллтайм может сделать язык лет за 4-5. А у тебя ещё дохрена всего помимо языка. Удачи, чо)
источник

M

MaxGraey in Compiler Development
проект на всю жизнь, еще и потомкам останется
источник

АВ

Александр Вольнов in Compiler Development
Peter Sovietov
@devoln А не хотите пообщаться на темы муз. программирования? Я посмотрел Ваш проект муз. синтезатора на github и хотел бы пригласить в ТГ-чат musicdsp  — нам как раз нужно оживлять там активность, а муз. программистов в целом маловато ;)
И всё-таки, ссылку на чат кинете? Я бы последил за беседой, может написал бы что-то, хоть уже наверное и не сегодня. Надо библиотеку допиливать. Хочу хотя бы к концу марта в master слить все свои изменения.
источник

p

polunin.ai in Compiler Development
MaxGraey
проект на всю жизнь, еще и потомкам останется
В наследство
источник

PS

Peter Sovietov in Compiler Development
Александр Вольнов
И всё-таки, ссылку на чат кинете? Я бы последил за беседой, может написал бы что-то, хоть уже наверное и не сегодня. Надо библиотеку допиливать. Хочу хотя бы к концу марта в master слить все свои изменения.
А он так и называется — musicdsp. Кстати говоря, в проекте Вашего синтезатора тоже заметна склонность к гигантомании — целый набор различных видов синтеза и проч. :) При этом код весьма наивный (везде торчит константа 44100, явление наложения частот не учитывается и так далее) и проект, похоже, далек от завершения.
источник

АВ

Александр Вольнов in Compiler Development
polunin.ai
Один человек фуллтайм может сделать язык лет за 4-5. А у тебя ещё дохрена всего помимо языка. Удачи, чо)
Это всё же не язык программирования общего назначения, там попроще должно быть. Тут не нужен отладчик, IDE, достаточно подсветку к какому-нибудь существующему редактору прикрутить.
Наверное к концу лета уже будет парсер и конверсия текста в бинарь и обратно. А осенью думаю на part-time работу перейти, будет больше времени, чтобы сделать вычисление и оптимизацию выражений. А это уже почти минимальное подмножество, пригодное для создания и чтения умных бинарных файлов.
источник

А

Алексей in Compiler Development
Александр Вольнов
Это всё же не язык программирования общего назначения, там попроще должно быть. Тут не нужен отладчик, IDE, достаточно подсветку к какому-нибудь существующему редактору прикрутить.
Наверное к концу лета уже будет парсер и конверсия текста в бинарь и обратно. А осенью думаю на part-time работу перейти, будет больше времени, чтобы сделать вычисление и оптимизацию выражений. А это уже почти минимальное подмножество, пригодное для создания и чтения умных бинарных файлов.
вообще элементарная задача на пару вечеров
источник

p

polunin.ai in Compiler Development
Парсер да, можно за пару вечеров навернуть
источник

p

polunin.ai in Compiler Development
Если использовать генераторы, то и за один
источник

IK

Ivan Kochurkin in Compiler Development
Александр Вольнов
С этого я и начинал - формат моделей. Потом я заметил, что если добавить одну маленькую фичу, диапазон решаемых задач резко расширяется. Добавить ещё одну - опять расширяется. Потом со временем обнаруживается, что несколько фич в чём-то похожи друг на друга и их можно обобщить одной фичей, которая гораздо проще, чем сумма отдельных фич, но может рещать ещё больший круг задач.
Вот я последние несколько лет в свободное от других проектов время веду текстовый файл со всеми фичами, пытаясь покрыть как можно больший круг задач минимальным количеством фич. Я думаю, я уже близок к оптимуму и гармонии, и наконец скоро смогу приступить к подробному плану реализации, а затем и к самой реализации. А если бы я начал реализацию раньше, мне бы пришлось многое выкинуть в процессе объединения фич, которые я бы уже успел реализовать.
Также я определяю список фич, которые я буду реализовывать первыми, чтобы уже иметь что-то полезное на первых этапах реализации. Из этого и выделяются различные подмножества.
Самое минимальное и простое подмножество - это форматы хранения. Оно уже будет гораздо функциональнее всего того, что уже существует для сериализации, а я видел немало технологий, и гуглю постоянно, чтобы знать, что уже существует.
А базы данных и big data - это уже в перспективе.
О каком бинарном формате сериалзиации идет речь и чем не устраивают существующие? (protobuf, messagepack, flatbuffers и т.д.)?
источник

АВ

Александр Вольнов in Compiler Development
Peter Sovietov
А он так и называется — musicdsp. Кстати говоря, в проекте Вашего синтезатора тоже заметна склонность к гигантомании — целый набор различных видов синтеза и проч. :) При этом код весьма наивный (везде торчит константа 44100, явление наложения частот не учитывается и так далее) и проект, похоже, далек от завершения.
Там много старого мусора, который не используется. Наверное как раз в нём и торчит, либо только в качестве опционального аргумента, потому что у меня всё нормально звучит в любой частоте дискретизации. Вообще я предпринимал попытку почистить мусор и сделать более гибкую архитектуру, но завяз, а потом решил забросить и заняться более перспективными проектами.
А новую версию синтезатора уже сделаю на своём языке. В нём и FFT планируется, а также map и другие штуки, которые хорошо для dsp подойдут.
источник

M

MaxGraey in Compiler Development
Кстати, потому как реализован FFT/DСT в dsp-библиотеке можно многое сказать и библиотеки в целом
источник

АВ

Александр Вольнов in Compiler Development
Ivan Kochurkin
О каком бинарном формате сериалзиации идет речь и чем не устраивают существующие? (protobuf, messagepack, flatbuffers и т.д.)?
Уже по третьему кругу этот вопрос наверное. Если коротко, то существующие форматы не устраивают плохой версионностью и отсутствием типов произвольной битности. Если подробнее, то лучше помотайте вверх, уже обсуждалось.
источник

M

MaxGraey in Compiler Development
MaxGraey
Кстати, потому как реализован FFT/DСT в dsp-библиотеке можно многое сказать и библиотеки в целом
Кстати кто нибудь уже реализовал ATSFFT? Никто не в курсе?
https://arxiv.org/abs/1908.02461
источник

АВ

Александр Вольнов in Compiler Development
MaxGraey
Кстати, потому как реализован FFT/DСT в dsp-библиотеке можно многое сказать и библиотеки в целом
Если что, моя библиотека не претендует на звание DSP-библиотеки, хоть и содержит FFT. Кстати, я в процессе рефакторинга (ещё не в master) разделил свою либу на 3 части: Core, Extra и Unstable.
Core наиболее продуманная и годится для всего - можно хоть на Ардуине использовать, там куча не используется. Этой частью я горжусь больше всего.
Extra содержит потоки, аллокаторы, контейнеры - в основном то, что есть в STL кроме алгоритмов, которые у меня в первой части.
В Unstable я держу всякие не очень обобщённые штуки типа вышеупомянутого FFT и других велосипедов, которые у меня остались со старых времён. По сути это помойка не очень продуманных наработок, которую я либо буду делать более продуманными и перемещать в Extra, либо выкину, когда они станут не нужны.
источник

АВ

Александр Вольнов in Compiler Development
Peter Sovietov
А он так и называется — musicdsp. Кстати говоря, в проекте Вашего синтезатора тоже заметна склонность к гигантомании — целый набор различных видов синтеза и проч. :) При этом код весьма наивный (везде торчит константа 44100, явление наложения частот не учитывается и так далее) и проект, похоже, далек от завершения.
Проект вполне работает, можете послушать: https://devoln.github.io/midisynth/?~https://devoln.github.io/midi/Merry%20Christmas.mid
Сайт в некотором роде сломан, по ссылкам и таблице другие midi файлы открыть не получится. Но можете ещё на своих локальных MIDI попробовать.
источник