LINUX.ORG.RU

Дарую вам свою гениальную мысль о MetaTXTprog!

 , , ,


1

3

Так как текстовые языки надежно закрепились в умах нынешних программистов, я решил продумать идеальный текстовый язык для тех кто не захочет переходить на графику.

И так, для начала нужно выбрать хороший язык для основы, смысл делать велосипед? Раньше хорошим выбором был бы С, на нем как раз базируются многие успешные языки, но так как уже появился и получил популярность С++, у которого возможностей больше, нужно взять его! Можно конечно взять и С, для прототипа...

И так, какие проблемы имеются у С++? Ограниченность, Qt даже пришлось делать свой MOC, поэтому нужна расширяемость! А у кого лучшая расширяемость? Многие борщехлебы скажут что у Lisp'a, но это не так, он ограничен своими списками, а вот Forth нет, он ограничен разве что платформой на которой был запущен.

А какие проблемы есть у Forth? Это очень низкоуровневый язык, еще например в нем нет структур, их можно реализовать самому, но каждый реализует свои структуры которые не совместимы с другими! А даже если совместимы, нельзя улучшить ВСЕ структуры в Forth сразу, добавить им выравнивание к примеру, нужно улучшать каждую библиотеку по отдельности... Ужас.

Как же решить проблему Forth? А она сама решится, так как у нас будет база в виде C++ или C! Надо только дать удобный интерфейс ко всему этому, что бы можно было просто взять и пройти по полям структуры, добавить свои конструкции, юзать свои лексеры-парсеры... Тот же Forth, тольео вместо слов будут функции! Так же нужно обязательно взять идею с «одновременно компилятор и интерпретатор», многие удивятся, а зачем интерпретатор? Все просто, он нужен для расширяемости, что бы во время компиляции использовался код MegaTXTprog, а не какого нибудь препроцессора, как в Rust'овых макросах. Потом уже интерпретатор и всю ненужную среду можно будет выкинуть, главное что бы интерпретируемый код все настроил и расширил во время компиляции... Причем выкидывание нужно сделать опциональным, а вдруг понадобится eval? Его даже не нужно будет как то сложно реализовывать, Forth нам его подарит...

Жду такой язык уже джва года.

Домашнее задание:

  • Реализовать вычисление SEXP выражений на Forth для лучшего понимания сути языка.
  • Поиграться с Factor, попробовать собрать минимальную программу без среды.
  • Узнать что есть у конкурентов https://docs.racket-lang.org/guide/languages.html
Deleted

Ответ на: комментарий от Deleted

Ну нет, у него немного другая идея, да Haskell «скриптуха» (c), а еще не имеет столько либ сколько имеют плюсцы, а еще у него не сишный синтаксис и ФП...

Deleted ()

Forth relies heavily on explicit use of a data stack and reverse Polish notation (RPN or postfix notation)

что это за говнище? это наверное имело смысл использовать на каких то доисторических эвм с перфокартами для простоты реализации. щас то зачем так извращаться не пойму???

мысль топика не понял вообще. для тех «кто не захочет переходить на графику» (а таковых я думаю будет до 3 букв) есть широчайший выбор существующих языков начиная от языков ассемблеров, C и заканчивая скриптотой.

iluha16 ()

Сразу понял, что вам приснился страшный сон и вы решили поделится
ним с другими /сообщение то было написано в три часа ночи/.

PS: «Ляг поспать и все пройдет».

Владимир

anonymous ()

https://habr.com/ru/company/infopulse/blog/327176/ Развенчание мифов о мета-объектном компиляторе Qt

Moc — это один из инструментов разработчика и часть библиотеки Qt.
Его задача — поддерживать расширение языка С++, необходимое для 
интроспекции и рефлексии в Qt (сюда относятся сигналы, слоты и 
QML). Для более детального объяснение вы можете почитать о том, 
как работают сигналы и слоты в Qt.

Да, динамической «интроспекции и рефлексии» в C++ не достает.
По существу это и есть то, что вы хотели обсудить.
А далее нагородили - "... огородами, огородами и к Котовскому".

Владимир

anonymous ()
Ответ на: комментарий от iluha16

щас то зачем так извращаться не пойму???

Там реализуется какой нибудь sexp в 3 строки по 3 слова. Стек он есть изначально, с этой странной записью, а с этим уже можно сделать что угодно, да и я не предлагаю эту запись.

есть широчайший выбор существующих языков начиная от языков ассемблеров, C и заканчивая скриптотой

Они все плохи.

Deleted ()
Ответ на: комментарий от no-such-file

Все равно лисперы в форта все сперли, так что даже если бы ты был прав это не имело бы смысла. Зачем в лиспы уходить, форт чистая реализация тех идей которые нужны.

Deleted ()

Измена и ересь! Светлый графический метапрог в опасности! И эта в то время, когда даже я решил зарегаться и поучаствовать в воплощении в жизнь гениальной идеи графического мышеориентированного программирования... Печальна... :(

Нет, отчаиваться рано... Это испытание только очистит и укрепит ряды графических разрабов...

anonymous ()
Ответ на: комментарий от Deleted

не понял, какой там секс реализуется в 3 строки?

чем плохи? впрочем так как ты нахватался знаний из разных языков и областей IT, тебе можно попробовать таки запилить микроволновку, стиральную машинку, и холодильник в одном девайзе универсальный язык программирования.

iluha16 ()
Ответ на: комментарий от Deleted

Вот перед вами скажем болото.
Его можно обойти или перейти его на прямую
Так и в суждениях и мыслях людей - не нужно погружаться в болото.

Владимир

anonymous ()
Ответ на: комментарий от Deleted

компилятор пока не пиши а просто накидай примеров кода что бы было понятно как выглядит твой новый текстовый язык. у тебя же уже есть идея? если понравится кто нибудь может возьмётся реализовать компилятор или даже несколько разработчиков захотят присоединиться к проекту. может тебе и не придётся писать ни строчки для компилятора самому.

iluha16 ()
Ответ на: комментарий от metaprog

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

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

он мало с ними взаимодействует в твоих темах

Со скептиками? Взаимодействует и очень даже много.

Предложение в этой теме такое чтоб создать текстовый язык, свободный от недостатков. Возможно ли это сделать, не задействуя графику?

metaprog ()
Ответ на: комментарий от metaprog

Предложение в этой теме такое чтоб создать текстовый язык, свободный от недостатков.

Как ни стараюсь, не могу увидеть ничего серьёзного в этой теме. Вижу попытку вброса — автору захотелось популярности, как у тебя. Но вброс получился так себе, и обсуждение не разгорелось.

Видимо, что-то у тебя такое есть, что породило тысячи сообщений и с полдюжины тем. Правда, обсуждение получилось нездоровое.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

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

iluha16 ()
Ответ на: комментарий от iluha16

Я к примеру мечтаю о таком текстовом языке программирования:


$ echo 'Посчитать и вывести на экран кол-во упоминаний слова "жопа" на форуме linux.org.ru. В процессе выполнения показывать progress bar.' > helloworld.newlang
$ newlang -O helloworld.exe helloworld.newlang
$ ./helloworld.exe
Progress: 100%
на форуме linux.org.ru обнаружено 189,493 упоминаний слова "жопа"

iluha16 ()