https://youtu.be/MmC9Qy99Vns Очень интересный доклад. Если отбросить неприязнь к "русскоязычным языкам программирования", озвучены весьма интересные идеи. Идея минималистичного языка программирования, реализация которого занимает до 10К строк, мне очень импонирует, как минимум в качестве дидактического материала
YouTube
STEP14apr23AlexNedorya
Алексей Недоря: Интенсивное программирование: язык Тривиль
Аннотация: В докладе обсуждаются первые шаги перехода от экстенсивного к интенсивному программированию (см. https://digital-economy.ru/stati/интенсивное-программирование), а именно язык Тривиль, как…
Аннотация: В докладе обсуждаются первые шаги перехода от экстенсивного к интенсивному программированию (см. https://digital-economy.ru/stati/интенсивное-программирование), а именно язык Тривиль, как…
Forwarded from Nikolay V. Shilov
Наш семинар (потихоньку) возвращается с летних каникул. В четверг 10 августа выступит Алексей Недоря.
Тема: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо и что плохо. Выступление является продолжением выступления Интенсивное программирование: язык Тривиль (14 апреля 2023 г.)
Заседание пройдет онлайн в Skype (можно смотреть в браузере) с 10:00 до 11:30 московского времени (14:00-15:30 в Барнауле и Новосибирске).
Тема: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо и что плохо. Выступление является продолжением выступления Интенсивное программирование: язык Тривиль (14 апреля 2023 г.)
Заседание пройдет онлайн в Skype (можно смотреть в браузере) с 10:00 до 11:30 московского времени (14:00-15:30 в Барнауле и Новосибирске).
Долгое время не могу заставить себя делать петы. Решил попробовать делать их через двухнедельные джемы. Первый джем стартую с завтрашнего дня
https://itch.io/jam/a-jam-for-myself-1
https://itch.io/jam/a-jam-for-myself-1
🔥3
Когда слышу от кого-нибудь фразы по типу "чем учиться на своих ошибках, учитесь на чужих", у меня невольно возникает подозрение, что эти люди ничем в своей жизни серьёзно не занимались, не погружались ни в одну область. Объясню почему я так думаю.
Я считаю, что нет ничего лучше эмпирического метода для познания нового. Эмпирический подход подразумевает, что вы собираете факты и проверяете их на практике. Вы неминуемо столкнётесь с множеством граблей на своём пути. Но на самом деле грабли полезны. Очень полезны. Я бы даже сказал, архиполезны.
Идёт человек, не смотрит по сторонам, и тут наступил на граблю. И вот ему в лоб уже летит черенок, а через мгновение он преисполнится мудростью. Но почему бывают люди, наступающие на одну и ту же граблю раз за разом? Дело в том, что это одна и та же грабля только для наблюдателя. И лучше бы вместо грабли представить, что этот человек налетел на айсберг. Над толщей воды видна лишь маленькая вершина, именно её видит сторонний наблюдатель, в то время как в глубине скрываются тысячи скрытых деталей. И чем больше человек набивает шишек, тем многограннее его понимание проблемы.
Так что, если вы обладаете тридцатилетним стажем болельщика в боксе, вы, конечно, молодец, и вы явно смыслите в боксе больше чем я. Но вы явно не годитесь в тренеры для олимпийской сборной по боксу. Потому что дьявол кроется в деталях, и никаким образом, кроме как через кровь и пот, пролитые лично вами, вы эти детали не познаете.
Ну и когда в следующий раз увидите как ваш гипотетический однокурсник Ерохин наступил на граблю, задумайтесь, не было ли это мгновение точкой невозврата, на которой Ерохин оставил вас далеко позади
Я считаю, что нет ничего лучше эмпирического метода для познания нового. Эмпирический подход подразумевает, что вы собираете факты и проверяете их на практике. Вы неминуемо столкнётесь с множеством граблей на своём пути. Но на самом деле грабли полезны. Очень полезны. Я бы даже сказал, архиполезны.
Идёт человек, не смотрит по сторонам, и тут наступил на граблю. И вот ему в лоб уже летит черенок, а через мгновение он преисполнится мудростью. Но почему бывают люди, наступающие на одну и ту же граблю раз за разом? Дело в том, что это одна и та же грабля только для наблюдателя. И лучше бы вместо грабли представить, что этот человек налетел на айсберг. Над толщей воды видна лишь маленькая вершина, именно её видит сторонний наблюдатель, в то время как в глубине скрываются тысячи скрытых деталей. И чем больше человек набивает шишек, тем многограннее его понимание проблемы.
Так что, если вы обладаете тридцатилетним стажем болельщика в боксе, вы, конечно, молодец, и вы явно смыслите в боксе больше чем я. Но вы явно не годитесь в тренеры для олимпийской сборной по боксу. Потому что дьявол кроется в деталях, и никаким образом, кроме как через кровь и пот, пролитые лично вами, вы эти детали не познаете.
Ну и когда в следующий раз увидите как ваш гипотетический однокурсник Ерохин наступил на граблю, задумайтесь, не было ли это мгновение точкой невозврата, на которой Ерохин оставил вас далеко позади
👍4🔥1
Поучаствовал 10 августа в семинаре по языку Тривиль, помучал автора вопросами, мне было интересно, возможно, вам будет тоже.
Решил покопаться в языке поглубже. На мой взгляд, явно есть пути как сделать этот язык ещё "тривильнее". Всё ещё считаю, что хорошо иметь пример работающего компилятора в 10К строк. Думаю позаниматься разбором кода компилятора в серии заметок. Если вам интересно, ставьте лайки. Если нет, ну что же, вам придётся терпеть, ибо заметки всё равно появятся 🙂
https://youtu.be/gFQ0tiUA9Ns
Решил покопаться в языке поглубже. На мой взгляд, явно есть пути как сделать этот язык ещё "тривильнее". Всё ещё считаю, что хорошо иметь пример работающего компилятора в 10К строк. Думаю позаниматься разбором кода компилятора в серии заметок. Если вам интересно, ставьте лайки. Если нет, ну что же, вам придётся терпеть, ибо заметки всё равно появятся 🙂
https://youtu.be/gFQ0tiUA9Ns
YouTube
STEP10aug23AlexNedorya
Алексей Недоря: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо…
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо…
👍7
По инициативе с джемами имени себя для написания петов https://itch.io/jam/a-jam-for-myself-1
Ничего не сделано в срок, но пет начат. Надеюсь, что он доведётся до какой-то логически завершённой точки.
В данный момент я занят разбирательством с языком программирования тривиль и разработкой своего простенького динамически типизированного языка, который будет привязываться к моей библиотеке для написания ретроигр. В идеале ожидается штука уровня "как Blitz Basic, но без AOT-компиляции". Помимо всего прочего я подписался рассказать об этом проекте в конце сентября на питерском митапе. Так что придётся пилить 🙂
Ничего не сделано в срок, но пет начат. Надеюсь, что он доведётся до какой-то логически завершённой точки.
В данный момент я занят разбирательством с языком программирования тривиль и разработкой своего простенького динамически типизированного языка, который будет привязываться к моей библиотеке для написания ретроигр. В идеале ожидается штука уровня "как Blitz Basic, но без AOT-компиляции". Помимо всего прочего я подписался рассказать об этом проекте в конце сентября на питерском митапе. Так что придётся пилить 🙂
itch.io
A jam for myself I
A game jam from 2023-08-07 to 2023-08-21 hosted by Madware. The rules of a jam: Make something simple Enforce yourself to make reusable pieces of code suitable for following jams If you think you want to join...
👍2
Обратите внимание на интересный проект игры-сказки. Поиграли с женой в демку, остались очень довольны. В особенности радует звуковое сопровождение и необычный подход к славянскому бестиарию. Поддержали проект рублём. К сожалению, осталось всего 6 дней на сборы, хотелось бы, чтобы ребята успели собрать оставшиеся средства
https://boomstarter.ru/projects/BabaYaga_Games/videoigra_vasilisa_i_baba_yaga/
https://boomstarter.ru/projects/BabaYaga_Games/videoigra_vasilisa_i_baba_yaga/
Boomstarter
Видеоигра «Василиса и Баба Яга»
Приключенческая видеоигра по мотивам русской народной сказки «Василиса Прекрасная»
👍2
Пока у пользователей юнити разгорается драма вокруг новой политики платежей, у пользователей раста, привыкших к продукции JetBrains, судя по всему, назревает своя собственная. Новый плагин поддерживается только в платных версиях продукции JB, таких как IntelliJ IDEA Ultimate и CLion, а старый плагин объявили deprecated
😱4
Порассказывал про свой ретродвижок и язычок программирования на питерском митапе.
Ссылка с таймкодом для интересующихся тут 🙂
https://www.youtube.com/live/6mMXLCtHJuw?si=s4yI7f3jcFcutJU8&t=655
Ссылка с таймкодом для интересующихся тут 🙂
https://www.youtube.com/live/6mMXLCtHJuw?si=s4yI7f3jcFcutJU8&t=655
YouTube
Rust Community Meetup // 30.09.2023, Санкт-Петербург
Rust Lang Community и компания «Криптонит» приглашает разработчиков пообщаться в неформальной обстановке, послушать доклады и поделиться опытом в разных сферах разработки.
📅 30 сентября 2023 года (суббота)
🕑 14:00
Программа:
• 14:00 – Начало трансляции…
📅 30 сентября 2023 года (суббота)
🕑 14:00
Программа:
• 14:00 – Начало трансляции…
👍7
Для углубления понимания интерпретаторов решил начать читать книгу Friedman, D., Wand, M. Essentials of Programming Languages
Описание книги можно почитать тут https://github.com/true-grue/Compiler-Development/blob/master/docs/plt.md
Можно устроить что-то вроде читательского клуба онлайн со всеми желающими. С меня пост-отзыв по прочитанной главе, с возможным продолжением в комментариях, с остальных участников дальнейшее обсуждение прочитанного там же.
Первый пост-отзыв по книге напишу 4 ноября в 19:00 по московскому времени. Начинаю с прочтения первых двух глав (Inductive Sets Of Data, Data Abstraction)
Описание книги можно почитать тут https://github.com/true-grue/Compiler-Development/blob/master/docs/plt.md
Можно устроить что-то вроде читательского клуба онлайн со всеми желающими. С меня пост-отзыв по прочитанной главе, с возможным продолжением в комментариях, с остальных участников дальнейшее обсуждение прочитанного там же.
Первый пост-отзыв по книге напишу 4 ноября в 19:00 по московскому времени. Начинаю с прочтения первых двух глав (Inductive Sets Of Data, Data Abstraction)
👍5🔥5
Так. Кажется, моя вера в подсветку телеграма была преждевременная. (Вы не видели этот позор (пост-отзыв на книжку в процессе написания, stay tuned))
Итак, пост-отзыв по #EOPL3 после первой неполной недели чтения
Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a
Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и после этого ввели удобный формализм для использования таких грамматик для написания программ. Буду пробовать использовать это в повседневной практике, кажется это может быть полезно в очень широком круге задач
Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a
Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и после этого ввели удобный формализм для использования таких грамматик для написания программ. Буду пробовать использовать это в повседневной практике, кажется это может быть полезно в очень широком круге задач
Gist
пост-отзыв по книге Essentials Of Programming Languages после первой неполной недели чтения
пост-отзыв по книге Essentials Of Programming Languages после первой неполной недели чтения - EOPL3_week_1.md
🔥4
По запросу желающих, пост для комментирования процесса чтения 2 главы #EOPL3 тут. Можно начинать писать свои подмечания насчёт прочитанного и всё такое прочее
🔥1
Немного аутизма pinned «Итак, пост-отзыв по #EOPL3 после первой неполной недели чтения Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и…»
Наконец-то дописал свой отзыв по второй главе #EOPL3, так же завёл отдельный репозиторий для решения упражнений, где прорешал на языке Kotlin ряд задач из главы, о чём, собственно, пост и вещает.
https://github.com/madwareru/eopl3_conspects/wiki/Отзыв-по-второй-главе
Чуть позже организуем так же созвон, на котором обсудим решения различных читателей, по времени созвона сделаю отдельный пост
https://github.com/madwareru/eopl3_conspects/wiki/Отзыв-по-второй-главе
Чуть позже организуем так же созвон, на котором обсудим решения различных читателей, по времени созвона сделаю отдельный пост
GitHub
Отзыв по второй главе
Прохождение книги Essentials Of Programming Languages 3rd Ed. Конспекты и решения задач на языке Kotlin - madwareru/eopl3_conspects
👍1
Судя по всему участников кружка по чтению #EOPL3 осталось двое, а раз так можно спокойно сделать пост о том, что неспешно начато чтение третьей главы книжки. Удивительно насколько больше времени усвоение материала первых двух глав заняло, чем было запланировано. Хотя последние две недели я скорее просто занимался переосмыслением и рефакторингом своих решений для упражнений второй главы. Но вечно топтаться на месте -- не дело, так что приступаю к самому интересному, написанию первых реальных интерпретаторов
🔥4
Давно не писал про прогресс чтения книжки Essentials Of Programming Languages, которую я помечаю тегом #EOPL3
Была прочитана третья глава, в течение этого периода я написал ряд интерпретаторов для разной сложности языков функционального программирования на языке Kotlin. После чего решил попрактиковаться и переписать все уже пройденные упражнения на языке Rust. Это было весьма интересное приключение, но чем дальше я им занимался, тем больше у меня было сомнений, что я сдюжу написать хороший пост-отзыв по главе, так как мысли уже приобрели отчётливые очертания каши. По этой причине желание писать отзывы-конспекты отпало. Но есть желание сделать что-то другое, например, показать в статье по шагам как бы я писал интерпретаторы на котлине и на расте (отличия достаточно существенные). Так же хочется посветить отдельный пост теме парсинга языков программирования из s-выражений. Чем больше я об этом думаю, тем больше понимания, что репозиторий превратится скорее в подобие блога о программировании. Я в целом всё ещё не отбросил идею описывать эти вопросы в том же репозитории куда попадают все решения упражнений. Но возможно стоило бы сделать полноценный блог, куда впоследствии перенести эти знания в виде постов, возможно переосмысленных и более лаконичных. А пока, можно посмотреть на груду кода, совершенно не сопровождённого комментариями (кроме сообщений в коммитах) во всё том же репозитории https://github.com/madwareru/eopl3_conspects
Была прочитана третья глава, в течение этого периода я написал ряд интерпретаторов для разной сложности языков функционального программирования на языке Kotlin. После чего решил попрактиковаться и переписать все уже пройденные упражнения на языке Rust. Это было весьма интересное приключение, но чем дальше я им занимался, тем больше у меня было сомнений, что я сдюжу написать хороший пост-отзыв по главе, так как мысли уже приобрели отчётливые очертания каши. По этой причине желание писать отзывы-конспекты отпало. Но есть желание сделать что-то другое, например, показать в статье по шагам как бы я писал интерпретаторы на котлине и на расте (отличия достаточно существенные). Так же хочется посветить отдельный пост теме парсинга языков программирования из s-выражений. Чем больше я об этом думаю, тем больше понимания, что репозиторий превратится скорее в подобие блога о программировании. Я в целом всё ещё не отбросил идею описывать эти вопросы в том же репозитории куда попадают все решения упражнений. Но возможно стоило бы сделать полноценный блог, куда впоследствии перенести эти знания в виде постов, возможно переосмысленных и более лаконичных. А пока, можно посмотреть на груду кода, совершенно не сопровождённого комментариями (кроме сообщений в коммитах) во всё том же репозитории https://github.com/madwareru/eopl3_conspects
GitHub
GitHub - madwareru/eopl3_conspects: Прохождение книги Essentials Of Programming Languages 3rd Ed. Конспекты и решения задач на…
Прохождение книги Essentials Of Programming Languages 3rd Ed. Конспекты и решения задач на языках Kotlin и Rust - madwareru/eopl3_conspects
👍4🔥1
Чем бы дитя не тешилось. Решил отвлечься и поизучать функциональные структуры данных по книжке Окасаки, реализуя их на языке Pyret.
Сейчас у меня есть:
1. левоориентированная куча с реализацией дейкстры, её использующей https://gist.github.com/madwareru/704059793fea26fafc2c2af62128a95e
2. калькулятор и компилятор обратной польской нотации в си https://gist.github.com/madwareru/4cd2a9fb3c5ded5a4af9b479d0856cd9
3. Красно-чёрное дерево с возможностью визуализации https://gist.github.com/madwareru/bfad1a91ba374bd8532d0f3359808bf2
Насчёт последнего есть подозрение, что где-то баги, ибо кажется, что при 15 элементах у меня высота дерева не должна превышать 4, но она доросла до 5. Хотя визуально вроде всё корректно, свойство отсутствия рядом двух красных нод соблюдается
Сейчас у меня есть:
1. левоориентированная куча с реализацией дейкстры, её использующей https://gist.github.com/madwareru/704059793fea26fafc2c2af62128a95e
2. калькулятор и компилятор обратной польской нотации в си https://gist.github.com/madwareru/4cd2a9fb3c5ded5a4af9b479d0856cd9
3. Красно-чёрное дерево с возможностью визуализации https://gist.github.com/madwareru/bfad1a91ba374bd8532d0f3359808bf2
Насчёт последнего есть подозрение, что где-то баги, ибо кажется, что при 15 элементах у меня высота дерева не должна превышать 4, но она доросла до 5. Хотя визуально вроде всё корректно, свойство отсутствия рядом двух красных нод соблюдается