199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
1

Язык программирования Яр

24.01.2016, 21:58. Показов 32983. Ответов 488
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разрабатываю полностью русскоязычный язык программирования для профессионального применения (не учебный).

Основные достоинства:
- можно переопределять функции и классы на ходу
- при этом компиляция в нативный код (не байт-код, не JIT)
- удобный синтаксис
- совместно разрабатывается язык, IDE, система сборки и инструменты для рефакторинга

Сайт

Загрузка транслятора (Windows) с частью исходных текстов. Полные исходные тексты пока не открываю - рано ещё. Также потребуется загрузить среду разработки (инструкции на сайте).

Пример программы (работающий)

Хочу получить от вас обратную связь вот по этим трём документам:
библиотеки

модули

пространства-имён

Которые я всё время переписываю и вроде бы они наконец стали на что-то похожи. Или я просто ещё не заметил какие-то очередные проблемы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2016, 21:58
Ответы с готовыми решениями:

Язык программирования РС/Б
На страничке http://www.rs-b.nm.ru можно скачить компилятор (написаный полностью на асм), примеры,...

Новый язык программирования
я изобрел самый лучший язык программирования и самый простой program SAMPLE func main #x,y,z;...

Символьный язык программирования
Символьный язык программирования. Преамбула. В этом маленьком тексте я попробую...

Язык программирования Pike
Пайк (англ. Pike — «щука») — динамический интерпретируемый объектно-ориентированный язык...

488
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
31.07.2017, 21:31 21
Author24 — интернет-сервис помощи студентам
Где учился писать компиляторы?
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
01.08.2017, 20:51  [ТС] 22
Мне не надо писать компилятор (пока что). Речь пока идёт только о трансляции, это можно делать "не приходя в сознание", достаточно только распарсить и смоделировать некие структуры данных (пр-ва имён, модули и т.п.). Всю диагностику ошибок я пока взваливаю на реализацию лиспа, которая обрабатывает порождённый мной код.

В целом нигде не учился - подсматривал, как сделаны другие компиляторы. Но пока мои знания об оптимизации близки к нулю.
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
03.08.2017, 21:52  [ТС] 23
Есть некоторые новости: заработал новый транслятор (теперь Яр снова работает, чего не было уже много месяцев), в некоторых местах работает статическая типизация, есть именованные параметры, раскраска синтаксиса, переход к определению функции, переделан пошаговый отладчик, ошибки компиляции показываются в тексте Яра. Вроде мелочи и раньше я показывал больше результатов. Однако вложено чертовски много труда. И самое главное, очень сложно сделать нормальный редактор - было уже несколько попыток, но результат пока всё ещё далёк от желаемого.

Пример функции и её вызова (синтаксис сильно поменялся и явно будет меняться ещё):
1C
1
2
3
4
5
6
опр функ Ф1(А -- целое, ключи, Б = 5) 
тело 
  А × Б
кно
 
л-печать(Ф1(2)) // напечатает 10
Добавлено через 1 минуту
Ха... уже второй форум не может понять мой знак умножения ×
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
04.08.2017, 17:12 24
То ли дело непривычки, но синтаксис на русском - очень тяжело разбирать.
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
05.08.2017, 11:18  [ТС] 25
Любой новый синтаксис тяжело разбирать, а на русском - особенно. Тем не менее программисты 1С - самые востребованные программисты в России, это доказывает, что русский язык сам по себе не мешает успеху в программировании.

Добавлено через 12 часов 13 минут
Обсуждение возможностей,к-рые планируется добавить в язык в ближайшее время:

https://bitbucket.org/budden/iar/issues/6/quote - цитирование (для случая символа)

https://bitbucket.org/budden/i... ---------- хеш-таблицы
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
07.08.2017, 13:07  [ТС] 26
Пополнил ответы на часто задаваемые вопросы
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
08.08.2017, 23:27  [ТС] 27
Небольшое видео про новую версию Яра:

https://www.youtube.com/watch?v=KlrLV_3WV8k
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
13.08.2017, 20:18 28
Цитата Сообщение от budden Посмотреть сообщение
1С - самые востребованные программисты в России
Вот это поворот.
3
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
04.09.2017, 15:49  [ТС] 29
Ну, настало время отчитаться о работе, проделанной за месяц. Вот что добавилось:

- классы (точнее сказать, записи) с одиночным наследованием. Интерфейсов нет (пока не знаю, нужны ли они или нужно множественное наследование). Пока что при переопределении класса его данные уничтожаются. Методов тоже пока что нет.
- REPL, в т.ч. в нём можно (пере)определять функции и классы, в т.ч. с изменением сигнатуры
- составной оператор, оператор цикла. У цикла и составного оператора может быть имя
- оператор "вернуть-из" - выход из именованного блока с возвратом значений
- цитаты, пока не "квази", и толком годятся только для символов (а в будущем, наверное, будет примерно как в ScalaMeta)
- окна возникают в определённых местах (раньше выскакивали где попало), можно их подвинуть и сохранить новое положение

Релиз не выкладываю, видео не буду записывать: все новшества слишком сырые.

Ещё один результат, не являющийся разработкой: промерял скорость работы записей.
При всех оптимизациях получается ~60% от скорости Си. Хотя в Си более умный оптимизатор и во многих случаях разница будет больше.

Если реализовать множественное наследование, то получится 5 раз медленнее, что неприятно. Также неприятны "дыры" в выводе типов лиспа, работаем над патчами к компилятору.

Но прогресс за месяц неплохой. Пример кода:
Код
опр класс Предок ()
поля
  П1
  П2
кно

опр класс Потомок (Предок) поля П3 кно

опр функ Тест7 ()
тело
  пусть б -- Потомок = родись-Потомок(П1 = 1, П2 = цит(АБВ), П3 = 3)
  зап б.П3 = б.П1 + б.П3
  л-список(б.П1,б.П2,б.П3)
кно

л-печать(Тест7())
// напечатает (1 абв 4)
0
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
04.09.2017, 21:16 30
оно реально круто конечно но только зачем? жалко ваших усилий
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
06.09.2017, 14:29  [ТС] 31
Зачем? Вот табличка с новыми языками программирования. Я предлагаю тебе обратиться в эти организации с вопросом "зачем", а потом, когда они ответят, написать сюда. Когда будешь у них спрашивать, не забудь их тоже пожалеть.
Миниатюры
Язык программирования Яр  
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
06.09.2017, 16:05  [ТС] 32
Кстати, я забыл, что в табличку нужно добавить ещё и Kotlin от JetBrains, 2011-2017. Можешь у JetBrains тоже пожалеть.
0
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
06.09.2017, 16:57 33
Цитата Сообщение от budden Посмотреть сообщение
Зачем? Вот табличка с новыми языками программирования. Я предлагаю тебе обратиться в эти организации с вопросом "зачем", а потом, когда они ответят, написать сюда. Когда будешь у них спрашивать, не забудь их тоже пожалеть.
то есть вы себя сравниваете с гуглом и джетами?))) ничего себе
где о вас почитать можно?
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
06.09.2017, 18:35  [ТС] 34
Я могу задать уточняющий вопрос: что вы имели в виду вот этой репликой:
оно реально круто конечно но только зачем? жалко ваших усилий
По какой именно причине вам жалко моих усилий, можно поинтересоваться? Также позвольте спросить, вы действительно интересуетесь "зачем", или это просто фигура речи?
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
06.09.2017, 18:58 35
А никто не сравнивал себя с гуглом. Он привел список новых бессмысленных языков. Пока что его язык выглядит интереснее.
1
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
06.09.2017, 19:04 36
Цитата Сообщение от Luke0208 Посмотреть сообщение
Он привел список новых бессмысленных языков
Каждый из тех языков решают определенный круг задач.
1
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
06.09.2017, 19:13 37
Назовите хоть одну вещь, с которым Common Lisp, C++, Java не справляются, или те, которыми новыми бессмыслеными языками решается лучше.
0
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
06.09.2017, 19:21  [ТС] 38
Dmitriy_M, мы могли бы двигаться последовательно. Вы сначала намекнули, что я манипулирую со статистикой, а потом сами привели недостоверную статистику. Я подробно разобрался в вопросе и привёл доказательства вашей неправоты. Думаю, будет этично, если вы признаете свою ошибку. Ошибаться может каждый, но мужественным поступком является признание ошибки, а не тихий слив.

Насчёт языков - да, перечисленные мной языки решают круг задач. Раз такие крупные организации, способные хорошо планировать, создают свои новые языки, из этого следует, что они проанализировали существующие и остались недовольны. А раз версии выпускаются по сей день, значит, процесс создания новых языков не завершён. Т.е. сам по себе вопрос создания новых ЯП актуален.
0
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
06.09.2017, 21:05 39
Цитата Сообщение от Luke0208 Посмотреть сообщение
А никто не сравнивал себя с гуглом. Он привел список новых бессмысленных языков. Пока что его язык выглядит интереснее.
)) ну разработчики го котлинов растов свифтов елихиров и те де получают хорошую з.п. и они востребованы на рынке (кто -то меньше кто-то больше но все же) так что не так уж и бессмысленно, да.

Цитата Сообщение от budden Посмотреть сообщение
По какой именно причине вам жалко моих усилий, можно поинтересоваться?
ну вы же написали что проект не учебный то есть будь это учебная разработка то я бы ничего не сказал а так свой язык не пишит только ленивый. Но чтобы он реально где-то использовался нужна поддержка со стороны идеально если крупная корпорация. Есть вот языки чисто для внутренного потребления но не похоже что это ваш случай. Думаю что сейчас раскрутить язык особенно столько специфический (то есть явно ориентированный только на русскоязычных специалистов) проблематично. Да 1С популярен и даже очень но там есть явная узкая специализация я в ваш проект толком не вникнал но чего то подобного не увидел

Цитата Сообщение от budden Посмотреть сообщение
Также позвольте спросить, вы действительно интересуетесь "зачем", или это просто фигура речи?
действительно интересуюсь - попыток создать свой язык программирования очень много но вот заканчиваются они толком ничем, но вы не забросили дело даже спустя несколько лет (если правильно понял когда вы начали заниматься разработкой)
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
06.09.2017, 21:14 40
Разроботка не бесполезна, т.к. она требует специалистов? Отличный аргумент. Если бы это был аргумент, а вы назвали существенный признак понятия "разроботка"
0
06.09.2017, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2017, 21:14
Помогаю со студенческими работами здесь

Язык программирования GRASS
У кого-нибуть есть информация по этому языку программирования? Поисковые системы выдают информацию...

Icon язык программирования
кто знает, где скачать учебник по icon на русском?

Язык программирования simit
Стоит ли начинать учить не так давно разработанный язык simit? Есть ли для него уже среды...

Определить язык программирования
:umnik: #!/usr/bin/env python # -*- coding: utf-8 -*- def Cord ( char ) : num =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru