Относительно недавно нашел классную библиотеку для работы с байт-кодом jvm, написанную на rust (аналог objectweb asm). Если вы хотели написать компилятор под jvm, но не хотели использоваться для этого языки вроде джавы или котлина, то вот шикарный вариант - удобная библиотека, удобный язык: https://github.com/ChAoSUnItY/Ka-Pi
Я не уверен, что она доделана до конца, но у меня есть дикое желание ее форкнуть и доделать до конца.
Чат: @lang_dev_ru
Я не уверен, что она доделана до конца, но у меня есть дикое желание ее форкнуть и доделать до конца.
Чат: @lang_dev_ru
GitHub
GitHub - ChAoSUnItY/Ka-Pi: A JVM Bytecode Manipulation Framework inspired by ASM.
A JVM Bytecode Manipulation Framework inspired by ASM. - ChAoSUnItY/Ka-Pi
❤5
На каких языках вы пишите?
Anonymous Poll
30%
C
41%
C++
35%
Java
30%
C#
53%
Python
17%
Js
2%
Ocaml
3%
Scala
10%
Kotlin
5%
Lisp (Clojure, Common lisp, Pihta...)
❤4
Опрос для сбора статистики среди участников канала (чтобы понимать, какие вообще ресурсы сюда можно кидать)
🔥6
Нашел интересный язык от создателей Jolie. Язык называется Choral.
Можете посмотреть примеры кода на этом языке. Честно говоря, у меня ощущение, что он останется на том же уровне, что и jolie - вроде прикольно, относительно популярно, но на деле - бесполезно. Однако для ознакомления язык прикольный.
Наш чат: @lang_dev_ru
Можете посмотреть примеры кода на этом языке. Честно говоря, у меня ощущение, что он останется на том же уровне, что и jolie - вроде прикольно, относительно популярно, но на деле - бесполезно. Однако для ознакомления язык прикольный.
Наш чат: @lang_dev_ru
❤5
Если вы вдруг решите делать функциональный язык программирования, то в качестве бекенда можете взять такой классный инструмент как GRIN.
Узнал я о нем довольно давно, и сам хотел написать простенький язык, чтобы пощупать его поближе. К сожалению, я его так и не написал, но зато нашел прикольную реализацию функционального языка fuse, который написан на скала и использует grin, так что если будет желание - ознакомитесь.
Узнал я о нем довольно давно, и сам хотел написать простенький язык, чтобы пощупать его поближе. К сожалению, я его так и не написал, но зато нашел прикольную реализацию функционального языка fuse, который написан на скала и использует grin, так что если будет желание - ознакомитесь.
GitHub
GitHub - grin-compiler/grin: GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization…
GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support. - grin-compiler/grin
❤6
Не менее прикольный язык, чем choral - это panda. Язык работает под jvm и имеет полный набор нужного софта, включая ide, которая называется Lily.
Что касается рациональности применения языка - я бы не советовал использовать его в качестве основного. Сам по себе он является интрепритируемым, но имеет набор классных инструментов, которые можно поковырять. Так что если вы любите программировать на чем-то необычном, то можно попробовать этот язык, а при желании даже сделать его форк и попробовать доработать панду, потому что она имеет удобную структуру и красивый код
8 панд из 10
Наш чат: @lang_dev_ru
Что касается рациональности применения языка - я бы не советовал использовать его в качестве основного. Сам по себе он является интрепритируемым, но имеет набор классных инструментов, которые можно поковырять. Так что если вы любите программировать на чем-то необычном, то можно попробовать этот язык, а при желании даже сделать его форк и попробовать доработать панду, потому что она имеет удобную структуру и красивый код
8 панд из 10
Наш чат: @lang_dev_ru
GitHub
GitHub - panda-lang/panda: Proof of concept of modern and stylish interpreted programming language for the JVM ⚜️
Proof of concept of modern and stylish interpreted programming language for the JVM ⚜️ - panda-lang/panda
❤5
Хотите написать свой язык на Zig. но вам не хватает примеров? Вашему вниманию представляется язык Honey: https://github.com/honey-lang/honey
Простенький, компилируемый язык программирования, код которого очень легко читается, рекомендую к ознакомлению тем, кто хочет вкатиться в lang dev.
9 Ершовых из 10
Наш чат: @lang_dev_ru
Простенький, компилируемый язык программирования, код которого очень легко читается, рекомендую к ознакомлению тем, кто хочет вкатиться в lang dev.
9 Ершовых из 10
Наш чат: @lang_dev_ru
GitHub
GitHub - honey-lang/honey: The official repository for the Honey programming language.
The official repository for the Honey programming language. - honey-lang/honey
❤5
Если вы считаете себя программистом, после того, как написали компилятор на с++, то советую почитать о языке, который @tapeline_tg написал на кумире. Вот статья на хабре
Хабр
Как я собственный язык на КуМире писал
Привет, Хабр! Хочу поделиться одним любопытным и совершенно нетривиальным кейсом использования Русского Алгоритмического Языка. В этой статье я расскажу, зачем мне это вообще понадобилось и почему в...
❤9
Возвращаемся к обзорам интересных, но малоизвестных языков. На очереди у нас jule. Язык написан на c++, компилируется в llvm. Все разработчики языка состоят в команде TheAlgorithms, самая популярная организация, включающая в себя репозитории с алгоритмами на разных языках. В отличии от многих других языков - этот имеет серьезные цели и амбиции, и планируется использоваться для реальных задач. В целом язык бодрый, я его тестировал ещё давно, однако перспектив особых не наблюдал. В целом не вижу проблем лично вам писать на этом языке, сделан он хорошо, но есть в этом смысл, когда существует например с++? На этот вопрос я вам ответа не дам, думайте сами
8 алгоритмов из 10
Наш чат: @lang_dev_ru
8 алгоритмов из 10
Наш чат: @lang_dev_ru
GitHub
GitHub - julelang/jule: Simple and safe programming language with first-class C/C++ interoperability and powerful compile-time…
Simple and safe programming language with first-class C/C++ interoperability and powerful compile-time capabilities - julelang/jule
❤7
Знакомы ли вы с языком рефал?
Anonymous Poll
3%
Да, могу читать код на нем
18%
Слышал, но код на нем мне непонятен
80%
Нет
❤8
Если вы являетесь ценителем истинного фп, то можете попробовать язык Eta.
По сути чего-то принципиально нового язык не приносит, но именно эта имплементация haskell под jvm является одной из наиболее удачных (однако она все еще не лучше frege).
Вот как выглядит код на этом языке:
Ставлю ему 6 академиков из 10, потому что вряд-ли кому-то нужен будет haskell на jvm, когда есть scala и сама java.
Наш чат: @lang_dev_ru
По сути чего-то принципиально нового язык не приносит, но именно эта имплементация haskell под jvm является одной из наиболее удачных (однако она все еще не лучше frege).
Вот как выглядит код на этом языке:
{-# LANGUAGE ScopedTypeVariables #-}
import Java
import Control.Monad (forM_)
main :: IO ()
main = java $ do
let integers = [1..10] :: [Byte]
(arr :: JByteArray) <- arrayFromList integers
elems <- arr <.> mapM aget [0..9]
io $ print elems
arr <.> forM_ [0..9] (\i ->
aset i (fromIntegral i * 2))
arrList <- arr <.> arrayToList
io $ print arrListСтавлю ему 6 академиков из 10, потому что вряд-ли кому-то нужен будет haskell на jvm, когда есть scala и сама java.
Наш чат: @lang_dev_ru
GitHub
GitHub - typelead/eta: The Eta Programming Language, a dialect of Haskell on the JVM
The Eta Programming Language, a dialect of Haskell on the JVM - typelead/eta
❤4
Написал небольшую статью для новичков (да, это тебе Кирилл) с самой простой интерпретируемой реализацией языка Forth на платформе В_ТЕНТАКЛЕ: https://vt.0nera.ru/article/8
Код есть на гитхабе: https://github.com/ArtyomKingmang/forth
Код есть на гитхабе: https://github.com/ArtyomKingmang/forth
vt.0nera.ru
Пишем язык Forth (вводная статья для новичков) | В_Тентакле
<h1>Введение</h1>
<p>И так, это моя первая статья на платформе
В_ТЕНТАКЛЕ и по сути будет эксклюзивной, исключительно для нее. Статья нужна, чтобы показать, какого
формата контент будет выходить в этом профиле
в дальнейшем, а именно контент, посвященный
разработке…
<p>И так, это моя первая статья на платформе
В_ТЕНТАКЛЕ и по сути будет эксклюзивной, исключительно для нее. Статья нужна, чтобы показать, какого
формата контент будет выходить в этом профиле
в дальнейшем, а именно контент, посвященный
разработке…
❤4
Монадный парсер-комбинатор под jvm, или же реализация библиотеки parsec из haskell: https://github.com/jon-hanson/parsecj
В readme файле подробно расписано, как он работает. Из минусов: хоть и репозиторий обновлялся 10 месяцев назад, его исходники лежат без изменений уже 8 лет, и вряд-ли будут обновляться. Из плюсов: лицензия позволяет вам самим дорабатывать код и публиковать его у себя при соблюдении некоторых условий.
Наш чат: @lang_dev_ru
В readme файле подробно расписано, как он работает. Из минусов: хоть и репозиторий обновлялся 10 месяцев назад, его исходники лежат без изменений уже 8 лет, и вряд-ли будут обновляться. Из плюсов: лицензия позволяет вам самим дорабатывать код и публиковать его у себя при соблюдении некоторых условий.
Наш чат: @lang_dev_ru
GitHub
GitHub - jon-hanson/parsecj: Java monadic parser combinator framework for constructing LL(1) parsers
Java monadic parser combinator framework for constructing LL(1) parsers - jon-hanson/parsecj
❤5
EPE - Extreme Programming Event.
В чем суть ивента?
Среди подписчиков канала или на просторах интернета выбирается язык программирования / платформа. В течении определенного времени участник должен будет написать какую-либо программу на этом языке. Даже если вы написали свой ассемблер - мы можем устроить конкурс на нем, и люди будут писать программы на вашем языке.
Призы
В зависимости от сложности платформы и ограничений, которые будут введены администраторами призовой фонд может варьироваться в диапазоне от 500р до 3500р.
Если вы заинтересованы, и хотите, чтобы ваш язык (или платформа) стал языком первого сезона EPE отправляйте заявки администрации: @k1ngmang
В чем суть ивента?
Среди подписчиков канала или на просторах интернета выбирается язык программирования / платформа. В течении определенного времени участник должен будет написать какую-либо программу на этом языке. Даже если вы написали свой ассемблер - мы можем устроить конкурс на нем, и люди будут писать программы на вашем языке.
Призы
В зависимости от сложности платформы и ограничений, которые будут введены администраторами призовой фонд может варьироваться в диапазоне от 500р до 3500р.
Если вы заинтересованы, и хотите, чтобы ваш язык (или платформа) стал языком первого сезона EPE отправляйте заявки администрации: @k1ngmang
❤10
Поздравляю вас с открытием первого сезона EPE. Начать хотелось бы с чего-то не очень трудного, чтобы участники вообще могли понять суть мероприятия. Для этого был выбран язык Dragon. Он очень похож на привычные всем вам языки, однако его синтаксис довольно интересный
Hello World на Dragon:
Победитель первого сезона получит 600р.
Ещё раз напоминаю правила: Вы пишите программу на выбранном сезонном языке и отправляйте ее. Лучшая программа определяется 3 людьми, чье мнение не должно быть предвзятым. Отправка ваших трудов осуществляется следующим образом: вы сообщаете в личные сообщения @artyom_java название своей команды. Затем вы должны сделать fork репозитория на github, соответствующий сезону, в котором участвуете и добавить туда папку с названием команды, которую вы сообщили. После этого делайте pull request и ждите результатов. Если возникнут трудности, пишите @artyom_java.
Итоги через месяц.
Ресурсы:
Как отправить свой код на EPE
Документация языка Dragon
Ссылка на установщик языка Dragon
Hello World на Dragon:
show "Hello World"
Победитель первого сезона получит 600р.
Ещё раз напоминаю правила: Вы пишите программу на выбранном сезонном языке и отправляйте ее. Лучшая программа определяется 3 людьми, чье мнение не должно быть предвзятым. Отправка ваших трудов осуществляется следующим образом: вы сообщаете в личные сообщения @artyom_java название своей команды. Затем вы должны сделать fork репозитория на github, соответствующий сезону, в котором участвуете и добавить туда папку с названием команды, которую вы сообщили. После этого делайте pull request и ждите результатов. Если возникнут трудности, пишите @artyom_java.
Итоги через месяц.
Ресурсы:
Как отправить свой код на EPE
Документация языка Dragon
Ссылка на установщик языка Dragon
❤7
Forwarded from .
!!! Данный список основан на уже существующем списке, где можно найти ещё больше тематической литературы с комментариями автора: https://github.com/true-grue/Compiler-Development
📄 Литература для новичков:
📄 Литература для продвинутых:
📂 Статьи:
🖥 Суперкомпиляторы:
👮♀ Видео:
Robert Nystrom: Crafting Interpreters (2020)
Никлаус Вирт: Построение компиляторов (2010)
Альфред В. Ахо, Рави Сетхи и Джеффри Д. Ульман: Компиляторы: принципы, технологии и инструменты
Steven Muchnick: Advanced Compiler Design and Implementation (1997)
Реализация простейшего компилятора на python
Реализация простого интерпретатора forth
Рекурсивный спуск в компиляторах
Климов А.В., Романенко С.А: Суперкомпиляция: основные принципы и базовые понятия
1.Интерпретатор на Python'е__
2.Интерпретатор на TypeScript
3.Интерпретатор на Rust
4.Интерпретатор на С
5.Компилятор в llvm на Python'е
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - true-grue/Compiler-Development: Что читать о разработке компиляторов
Что читать о разработке компиляторов. Contribute to true-grue/Compiler-Development development by creating an account on GitHub.
❤8
Недавно в чате была предложена идея создания дискорд сервера, чтобы помимо чата можно было пообщаться вживую, отсортировать ветки, а также много чего еще, что дает дискорд. Нужно узнать ваше мнение: создавать или данного чата хватает?
❤7