#разработка_языков_программирования — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #разработка_языков_программирования, aggregated by home.social.
-
Дадим ещё один шанс советскому языку программирования?
А вы знаете что в СССР у нас были свои языки программирования? Что ж, почему бы нам не посмотреть что мы можем возродить?
https://habr.com/ru/articles/1012840/
#языки_программирования #разработка_языков_программирования #компиляторы #ссср #рапира
-
Funxy два месяца спустя: работа над ошибками, VM и прагматизм
Два месяца назад я писал на Хабр о первом релизе Funxy — гибридного языка программирования. Тогда это был эксперимент по созданию своего языка с выводом типов, императивного, с функциональными возможностями. С тех пор вышло несколько релизов. Мы исправили много ошибок, переписали рантайм и добавили недостающие инструменты. Хочу рассказать, что изменилось. Стабильность: десятки багфиксов — падения на валидном коде, рекурсия, edge-кейсы VM Рантайм: tree-walk интерпретатор → стековая VM (быстрее, легче по памяти) Язык: const , return , лямбды ( \x -> x + 1 ), list comprehensions, block syntax для DSL Типы: strict mode, flow-sensitive typing Тулинг: LSP и дебаггер Embedding: встраивание Funxy в Go-приложения как скриптовый движок
https://habr.com/ru/articles/995104/
#embedded_languages #backend #devops #функциональное_программирование #скриптовые_языки #скрипты #golang #рекурсия #разработка_языков_программирования #grpc
-
Funxy — гибридный язык программирования со статической типизацией
Funxy — гибридный язык программирования со статической типизацией, pattern matching и удобной работой с бинарными данными. Для чего подходит Скрипты и автоматизация. Один бинарник без зависимостей — скачал и работает. Встроенная работа с файлами, JSON, HTTP, SQL. Небольшие приложения. CLI-утилиты, API-сервисы, обработка данных. Работа с бинарными данными. Парсинг на уровне отдельных битов. Сетевые протоколы, форматы файлов, нестандартные структуры. Обучение программированию. Простой синтаксис, но с важными концепциями: типы, pattern matching, иммутабельные структуры данных, рекурсия с TCO (можно писать рекурсивный код без страха переполнения стека).
https://habr.com/ru/articles/974674/
#haskell #monad #tco #скриптовый_язык #разработка_языков_программирования #функциональное_программирование #рекурсия #matching #bitstring #http
-
Как я собственный язык на КуМире писал
Привет, Хабр! Хочу поделиться одним любопытным и совершенно нетривиальным кейсом использования Русского Алгоритмического Языка. В этой статье я расскажу, зачем мне это вообще понадобилось и почему в конечном счете я влюбился в него. (картинка позаимствована с одного из официальных туториалов )
https://habr.com/ru/articles/872680/
#кумир #русский_алгоритмический_язык #интерпретатор #разработка_языков_программирования
-
Управление памятью и разделяемыми ресурсами без ошибок
Мельком пробежал статью Синхронизация операций в .NET на примерах / Хабр , после чего захотелось поделиться с пользователями Хабра некоторыми мыслями насчет синхронизации доступа к объектам в различных языках программирования. Если честно, то большая часть моей статьи уже давно лежала в черновиках, но все не доходим руки до её доработки, а тут такой хороший повод поделиться своими размышлениями на эту тему, оставалось просто дописать эту вводную часть :-)
https://habr.com/ru/articles/784184/
#управление_памятью #rust #разработка_языков_программирования
-
[Перевод] Каково это, создавать язык программирования сегодня?
«Эта книга – классика. Относитесь к ней бережно». Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book . Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул. Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
https://habr.com/ru/companies/ruvds/articles/790868/
#ruvds_перевод #программирование #разработка_языков_программирования #компиляторы #zmodel #langium
-
[Перевод] Сложные проекты для программистов, чтобы учиться новому
В основном я учился программированию самостоятельно. Когда у меня появлялась захватывающая идея, я разбирался, что необходимо для решения этой задачи. Например, когда я заинтересовался работой поисковых движков, то начал читать о вычислительной эффективности множеств. Так я обнаружил задачу «как понять, что я уже выполнил краулинг этого URL?», если их уже были тысячи. Чтобы ускорить ответ на этот вопрос, я использовал множество, поиск по которому занимает O(1), а не O(n). Изучение того, что нужно для решения задачи, увлекательно, но при движении по собственному пути в кодинге в твоих знаниях остаются пробелы. Мне кажется, что если постоянно ставить перед собой сложные задачи, то эти пробелы будут заполняться по ходу. (Даже если это займёт больше времени, чем при прохождении курса. Интерес — важный мотиватор движения вперёд; стремитесь к тому, что любопытно вам.) В тот момент, когда я начал понимать вычислительную эффективность и стремиться к ускорению своих программ, я как раз решал задачу, связанную с поисковым движком. С тех пор я иногда задаюсь вопросом: что стоит сделать дальше? Каким будет моё следующее сложное задание? Это сильно зависит от имеющихся у вас на текущий момент знаний; некоторые идеи имеют смысл, другие пока недостижимы. Так мы и учимся. Я решил составить собственный список проектов, поддерживающих мой интерес к программированию. Это список в стиле серии Challenging projects every programmer should try Остина Хенли.
https://habr.com/ru/articles/797591/
#обучение #краулеры #разработка_языков_программирования #алгоритмы
-
Возможное решение проблемы ссылок в языках программирования
Любому программисту знакомо понятие "ссылка". Под этим термином обычно понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, физически расположенному в другом месте. Из-за этого ссылки удобно использовать, они легко копируются, и с их помощью очень просто получить доступ к объекту, на который эта ссылка ссылается и можно получить доступ к одним и тем же данным из разных мест программы. К сожалению ссылки, точнее ручное управление памятью, является наиболее частой причиной возникновения различных ошибок и уязвимостей в программном обеспечении. А все попытки автоматического управления памятью с помощью различных менеджеров упираются в необходимость контролировать создание и удаление объектов, а так же периодически запускать сборщик мусора, что отнюдь не положительно сказывается на производительности приложений. Тем не менее, ссылки в той или иной форме поддерживаются во всех языках программирования, хотя под этим термином часто подразумеваются не полностью эквивалентные термины. Например, под словом "ссылка" можно понимать ссылку как адрес в памяти (как в С++) и ссылку, как указатель на объект (как в Python или Java) . Хотя встречаются языки программирования, которые пытаются решать данные проблемы за счет концепции "владения" ( Rust , Аргентум или NewLang ). О возможном решении этих, и других имеющихся проблем со ссылками далее и пойдет речь.
https://habr.com/ru/articles/809773/
#разработка_языков_программирования #программирование #python #c++ #синтаксис
-
Строительные кирпичики в языках программирования
К сожалению, закончилась череда новогодних праздников и опять начинаются рабочие будни. Из-за этого придется опять большую часть времени отводить работе, а не чтению Хабра :-). Но пока новогодний запал не иссяк, опубликую продолжение серии статей на тему разработки языков программирования. В результате обратной связи по статье с размышлениями о структурном программировании , было много отзывов и споров в комментариях, за которые я хочу сказать всем большое спасибо. И под впечатлениями от обсуждения предыдущей статьи я задался вопросом, а существует ли минимальной набор лексем, операторов или синтаксических конструкций, с помощью которых можно построить произвольную грамматику для современного языка программирования общего назначения?