Робот-Программист

Научно-технические вопросы применения русского языка в программировании. Проекты с сайта программирование-по-русски.рф, кроме ЯОС . Информация об организациях и людях, использующих или изучающих русский язык в программировании. Сравнение операционных систем.
Ответить
киберсин
Сообщения: 3
Зарегистрирован: 05.02.22 15:06

Робот-Программист

Сообщение киберсин » 02.06.22 19:11

Это первое сообщение о проекте Робота-Программиста (программирование для всех).
Общая схема такая:
На входе РП - возможно, неполное и/или некорректное описание алгоритма создаваемой программы на почти естественном русском языке (ПЕЯ) (на первом этапе), а на выходе после авто-правок со стороны РП - (на первом этапе) корректный код на целевом высокоуровневом формальном языке программирования (ФЯП), например, С, Python или Активный Оберон.
Очевидно, что РП должен быть в состоянии также и переводить алгоритм на ФЯП в описание на ПЕЯ, формируя осмысленные укрупнённые блоки описаний (фразы и абзацы), а не что-то типа "переменная А09093 + переменная по адресу @00078784FD"
В будущем планируется добавить автогенерацию кода по рисункам (скетчам) GUI.

По реализации будут дальнейшие сообщения при наличии интереса сообщества.

Интересные ссылки:
1. Многоязычный ФЯП Citrine
2. IsaacOS is an Object Operating System written in Lisaac language
Lisaac — это первый компилируемый объектно-ориентированный язык программирования, основанный на концепции прототипов, поддерживающий системное программирование и контрактное программирование.... Несмотря на то, что язык строго типизирован, нет различия между кодом и данными. Даже скомпилированный код сохраняет динамические свойства.
3. Компилируемый ФЯП с расширяемым синтаксисом Seed7
4. Объектный динамический ФЯП Io семейства Smalltalk
5. Интерпретируемый ФЯП REBOL с поддержкой встраивания своих языков и расширениями синтаксиса

Евгений
Сообщения: 11
Зарегистрирован: 01.06.22 10:45

Re: Робот-Программист

Сообщение Евгений » 02.06.22 22:50

А на каком языке планируется реализовать проект?

киберсин
Сообщения: 3
Зарегистрирован: 05.02.22 15:06

Re: Робот-Программист

Сообщение киберсин » 03.06.22 00:22

Рассматриваю этот вопрос слишком долго...
Составил список претендентов (место в списке имеет значение):
Julia -> LLVM (JIT)
Lisaac (хотя синтаксис тот ещё) -> C -> TCC (AOT) / (GNU Jitter VM)
V -> C -> TCC (AOT) / (GNU Jitter VM)
Seed7 -> C -> TCC (AOT) / (GNU Jitter VM)
Активный Оберон (AOT?)
C с объектами (Glib, GObject, Vala/Genie, eC, cello, metalang99, ooc/rock, etoile) -> TCC (AOT) / (GNU Jitter VM)
Io (VM)
Chez Scheme -> C -> TCC (AOT) / (GNU Jitter VM)
PicoLisp → LLVM (JIT)
REBOL (Ren-C) → C -> TCC (AOT) / (GNU Jitter VM)
Ciao -> C -> TCC (AOT) / (GNU Jitter VM)

Евгений
Сообщения: 11
Зарегистрирован: 01.06.22 10:45

Re: Робот-Программист

Сообщение Евгений » 03.06.22 11:32

киберсин писал(а):
02.06.22 19:11
Это первое сообщение о проекте Робота-Программиста (программирование для всех).

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

киберсин
Сообщения: 3
Зарегистрирован: 05.02.22 15:06

Re: Робот-Программист

Сообщение киберсин » 03.06.22 17:48

Евгений писал(а):
03.06.22 11:32
Если Вы будете готовы делиться конкретными идеями, алгоритмами, методами решений, то очень многим будет интересно. Например, на этих форумах давно обсуждается вопрос использования падежей для идентификаторов (то есть идентификатор в тексте программы может быть использован в различных падежах). Если в Вашем проекте придется решать подобную задачу и Вы знаете и готовы показать путь решения, то, думаю, эта тема станет самой горячо обсуждаемой на этом форуме.
Насчёт делиться... Делёж возможен в обмен на деятельное участие)).
Конечно, общими идеями и архитектурными подходами поделюсь, само собой - для того и начинал эту тему.
Но не думаю, что публикация деталей архитектурных и технологических решений на данном форуме чем-то поможет проекту Робота.
Я отдаю себе отчёт в том, что продукт одиночки или пары гиков никогда не найдёт своего пути к массовому использованию. Примеров больше, чем достаточно: REBOL, Pharo/Self/Io, Lisaac, Active Oberon, Zonnon, Haxe, Nim, D, OpenDylan, получше дела у Ada/SPARK или Julia.
Так что не очень понятно, что лучше. Наверное, писать статьи в журналы )).
И ещё вариант: при помощи Робота создать динамическую библиотеку пред-парсинга для вашего любимого компилятора, укрощающий буйство словоформ для идентификаторов.

Евгений
Сообщения: 11
Зарегистрирован: 01.06.22 10:45

Re: Робот-Программист

Сообщение Евгений » 04.06.22 15:18

киберсин писал(а):
03.06.22 17:48
Я отдаю себе отчёт в том, что продукт одиночки или пары гиков никогда не найдёт своего пути к массовому использованию. Примеров больше, чем достаточно: REBOL, Pharo/Self/Io, Lisaac, Active Oberon, Zonnon, Haxe, Nim, D, OpenDylan, получше дела у Ada/SPARK или Julia.
Так что не очень понятно, что лучше. Наверное, писать статьи в журналы )).
Делай, что должно, и будь, что будет)

Ответить