Re[71]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 29.12.10 19:23
Оценка: :))
Выложил версию на СВН.

Кстате эмблемой языка выбрана малая птичка — Колибри.
Размер колибри, символизирует компактность языка
Скорость взмахов крыльев, символизирует скорость работы программиста в РС

"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[69]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 30.12.10 08:55
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, _nn_, Вы писали:


__>>Ну или на крайний вариант только парсер на Nemerle написать.


PC_>В смысле, речь о этом исходнике ?

PC_>http://code.google.com/p/rsinterpretator/source/browse/trunk/RS/DOM/Common/TextLine.cs?r=50

PC_>И что вы хотите там улучшить с помощью Немерле ?

Код вида
  this.Split(@"\&|\^|\||\;|\?|\$|\<|\>|\+|\-|\*|\/|\%|\\=|\s|\.\.|\,|\@|not in|True|False");

трудно поддерживать и трудно читать.
Даже у вас стоят комментарии что конкретно он делает.

А читать и поддерживать грамматику PEG гораздо проще.

Примеры:
Calculator Parser
JSON Parser
C# Parser

Я не хочу разводить снова спор.
Ваш парсер имеет полное право на жизнь.

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

__>>P.S.

__>>И еще раз бы доказало крутость Nemrele

PC_>А еще хорошо бы написать РС на Java и обеспечить кроссплатформенность вплоть до мобильных устройств.


Странно тогда, что вы начали писать на C#.

PC_>Но всеже,

PC_>пишите (с)
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[72]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 09:00
Оценка: :)
Появилась идея ввести в язык функции на правах прототипа для обьезда некоторых идей, например для КвикСорт.
С подкапотной реализацией собственно вопросов нет, есть вопросы с синтаксической конструкциией

предлагаю на єто дело задействовать квадратные скобки, чтото вроде

func[x*х]


такая функция возвращает квадрат числа х и принимает число х в качестве параметра.
Особеностью функций в РС будет то,
что число и тип параметров для функции не задано.

например вот так

func[x*y]

x=5
y=7
func(x,y)


Это даст более гибкие функции,
в которых можно будет подменять в принципе любую переменную,
передав ее начальное значение в качестве параметра
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[72]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 09:02
Оценка:
test
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[70]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 09:29
Оценка: :)
Здравствуйте, _nn_, Вы писали:

__>
__>  this.Split(@"\&|\^|\||\;|\?|\$|\<|\>|\+|\-|\*|\/|\%|\\=|\s|\.\.|\,|\@|not in|True|False");
__>

__>трудно поддерживать и трудно читать.

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

А вот написать парсер на С++, это многосерийная бразильская история.

"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[71]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 10:34
Оценка:
Здравствуйте, PC_2, Вы писали:

Мде, после функций можно было бы осилить QuickSort InPlace
Чтото типо этого

p(a,x,m,r)[
x<m & a.x>a.m ? a.x||a.m;x+=r
f(a,x,(x+m)/2,m)
]

f(a,x,m,y)[
p a,x,m,1
p a,m,y,-1
]


Конечно это не 45-50 байт Хаскелевское или Немерлистское, а 80 байт, но зато ИнПлейс
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[71]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 30.12.10 10:44
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, _nn_, Вы писали:


__>>
__>>  this.Split(@"\&|\^|\||\;|\?|\$|\<|\>|\+|\-|\*|\/|\%|\\=|\s|\.\.|\,|\@|not in|True|False");
__>>

__>>трудно поддерживать и трудно читать.

PC_>я вам открою маленький секрет.

PC_>Сложность парсера зависит от синтаксиса языка и его продуманности.
PC_>Например написать парсер на РС, пустяковое дело, не сложнее чем на Лисп.
PC_>И расширять и поддерживать его архитектуру, такое же пустяковое дело.
PC_>Например чтобы ввести новый тип или новый оператор нужно чуть подредактировать регексп и описать логику
PC_>работы операторов с новыми типами, или типов с новым оператором.
А может хорошая идея.
Довести RS до возможности написания транслятора на себе и тогда разработка будет еще быстрее идти ?

Но сперва нужно написать первый RS транслятор который это сможет осилить.
Вот тут Nemerle как раз может помочь.

Да и что вы так перекидываете тему ?
Я вам даю конструктивный совет по улучшению, а вы про Lisp и С++.

PC_>А вот написать парсер на С++, это многосерийная бразильская история.

Это где я С++ предлагал ??

PC_>
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[72]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 10:50
Оценка:
Здравствуйте, _nn_, Вы писали:

Кого вы планируете превлечь к разработке на Немерле ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[73]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 30.12.10 10:53
Оценка: :)
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, _nn_, Вы писали:


PC_>Кого вы планируете превлечь к разработке на Немерле ?


Вас конечно
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[74]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 11:00
Оценка:
__>Вас конечно
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[74]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 11:05
Оценка: :)
Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, PC_2, Вы писали:


PC_>>Здравствуйте, _nn_, Вы писали:


PC_>>Кого вы планируете превлечь к разработке на Немерле ?


__>Вас конечно


Лично мне квадратоколесные велосипеды которые нужно применить только потому что
нужно применить совершенно не нужны.
Весь мой парсер занимает на шарпе 200 строк кода,
логику работы оптимизаторов выражений, логику NULL, предопределенные переборщики,
сомневаюсь что Немерле осилит в своем макросовом стиле.
Также как и врядли он осилит логику работы оптимизатора запросов в какой нибудь БД.

Если вы хочете потешить свое самолюбие на счет Немерле, показав
что ему и РС по зубам, то не имею ничего против.

Много реализаций хороших и разных, за мной только стандарт языка
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[75]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 30.12.10 11:26
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, _nn_, Вы писали:


__>>Здравствуйте, PC_2, Вы писали:


PC_>>>Здравствуйте, _nn_, Вы писали:


PC_>>>Кого вы планируете превлечь к разработке на Немерле ?


__>>Вас конечно


PC_>Лично мне квадратоколесные велосипеды которые нужно применить только потому что

PC_>нужно применить совершенно не нужны.
Ну и объясните это пользователям yacc/bison и ANTLR что нет смысла писать генератор парсеров.
PC_>Весь мой парсер занимает на шарпе 200 строк кода,
Сравните описание грамматики в декларативном стиле и разбором кода.
PC_>логику работы оптимизаторов выражений, логику NULL, предопределенные переборщики,
PC_>сомневаюсь что Немерле осилит в своем макросовом стиле.
Вы снова вставляете слова.
Я вас не заставляю писать макросы.
PC_>Также как и врядли он осилит логику работы оптимизатора запросов в какой нибудь БД.
Для работы с БД используются библиотеки которым не важно каким ЯП вы пользуетесь.

PC_>Если вы хочете потешить свое самолюбие на счет Немерле, показав

PC_>что ему и РС по зубам, то не имею ничего против.
Еще раз.
Я считаю, что разрабатывая на Nemerle, вы получите большую продуктивность разработки нежели на C#.
Вот и все.
Никаких макросов, никаких БД, ничего другого.

PC_>Много реализаций хороших и разных, за мной только стандарт языка

Ну вот что-то не видно этого стандарта.
Я все еще жду полное описание грамматики RS.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[76]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 11:35
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Ну и объясните это пользователям yacc/bison и ANTLR что нет смысла писать генератор парсеров.


С этой фразы видимо следует что вам писать интерпретатор РС будет проще на Немерле.
Чтож, всего лишь осталось доказать это на практике ...

__>Сравните описание грамматики в декларативном стиле и разбором кода.

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

__>Я считаю, что разрабатывая на Nemerle, вы получите большую продуктивность разработки нежели на C#.


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

PC_>>Много реализаций хороших и разных, за мной только стандарт языка

__>Ну вот что-то не видно этого стандарта.
__>Я все еще жду полное описание грамматики RS.

А я подскажу, вы главное начните
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[77]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 13:28
Оценка:
Добавил конструкцию для генерации массивов

Вот так можно инициализировать массив на 100 элеменов заполненный 0

m = 0**100


А вот так тоже, но строковой массив

m = 'A'**100
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[60]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 30.12.10 14:21
Оценка:
M>>Это какое-то недоступное мне альтернативное мышление. PC_2 мягко говоря обсирает другие языки, в частности, за использование встроенных и библиотечных функций. И при этом сам без зазрений совести вводит встроенные функции в язык.

E>Ну так если ты осуждаешь стиль поведения PC_2, то зачем ты САМ делаешь ТОЖЕ САМОЕ?

E>Чё за детский сад? "Мама! Он мне ногу оторвал! -- Ну и ты ему оторви!"

E>Ты лучше скажи, что именно ты хотел услышать в ответ на просьбу заюзать RND?

E>Насколько я понял ТС, суть его претензий в том, что во всяких генераторных штуках, и не только в них есть всякие конструкции "сделай то". Они конечно хорошие, но суть вопроса выразить не дают.


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

http://rsdn.ru/forum/flame.comp/4093531.aspx
Автор: kochetkov.vladimir
Дата: 25.12.10


Специально для тебя цитирую ответ PC_2:

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




Суть претензий PC_2... в чем-чем?


E>Конечно люди, которые написали эти "грушки", как он выражается, сделали это не просто так, а потому, что лучше не смогли. Это понятно. И если изучить их логику, что ты тоже поймёшь, что лучше не придумать.


Ты почитай ту подветку, на которую я привел ссылку выше и на которую ты же поставил минус. От PC_2 долго пытаются добиться внятного овтета про лучшесть и гибкость, после чуго он решил на разговор забить, отмазавшись тем, что пора регэкспы реализовывать, хотя попытку конструтивного разговора на эту тему
Автор: kochetkov.vladimir
Дата: 22.12.10
он решил оборвать на стадии «у вас говнокод»

E>Но парадокс человеческого мышления состоит в том, что если не знать о том, что лучше не придумать, то часто таки удаётся придумать лучше...


Парадокс человеческого мышления состоит в том что, если не знать вообще ничего, то лучше придумать не удастся. Особенно, если считать всех вокруг идиотами.


E>Так что очень большая ценность усилий ТС состоит в том, что он не видит стен, которые видят люди отягощённые *излишним* образованием


Нет в этих усилиях ценности до тех пор, пока он не прекратит поливать оппонентов дерьмом. Оппоненты пока что сдерживались от того, чтобы смешать с дерьмом его самого.

E>Кроме того, он таки довольно компактный синтаксис предложить смог. Я думаю, что он ещё что-то хорошее на эту тему придумает.


Ню-ню.

E>Но его зачем-то дёргают какой-то фигнёй, вроде того, что типа а вот метод Ньютона так не запишешь. IMHO, то, что так не запишешь, это очевидно. И толку от таких замечаний -- ноль.


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


M>>Конструктив тут прямой: разуть глаза и начать адекватный диалог.

E>Ну так начни.

Уже начинался, и не раз. Повторю в очередной раз: парями, хорьками и т.п. мы не раскидывались и не раскидываемся до сих пор. Это — прерогатива «мегагуру языкостроения» PC_2


E>Например, можешь разобраться, наконец, со своими идеями про клонов...

E>Или пояснить что именно ты хотел по поводу RND узнать... Может и что дельное хотел, но я вот, например, пока не понял, что именно.

Потворяю в третий раз (вопрос был задан PC_2'у):

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

Аналогично с "шифтовыми" символами. Ты называешь крутым код, содержащий 6 абсолютно ненужных шифтовых символов на 10 символов кода:

^('s,=' + a)


Но при этом называешь быдлокодом и говноязыками другие языки



E>Кроме того тут есть много всяких рассуждений не только от ТС, но и от меня, и от Алексея Шинкарёва.

E>Присоединяйтесь, барон!(с)...


Повторя в пятый раз — зачем? Чтобы в ответ на разложенное по полочкам и прожеванное сообщение
Автор: kochetkov.vladimir
Дата: 22.12.10
получить

По уровня говнокода, боюсь, вы порвали даже J




а так же прочие «пари, хорьки и быдлопрограммы»?


dmitriid.comGitHubLinkedIn
Re[73]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 30.12.10 14:50
Оценка:
PC_>Появилась идея ввести в язык функции на правах прототипа для обьезда некоторых идей, например для КвикСорт.
PC_>С подкапотной реализацией собственно вопросов нет, есть вопросы с синтаксической конструкциией

PC_>предлагаю на єто дело задействовать квадратные скобки, чтото вроде


PC_>
PC_>func[x*х]
PC_>



внезапно появились функции, внезапно появился доступ по индексу, а вони-то было!


dmitriid.comGitHubLinkedIn
Re[72]: Говнокод
От: Mamut Швеция http://dmitriid.com
Дата: 30.12.10 14:52
Оценка:
PC_>Мде, после функций можно было бы осилить QuickSort InPlace
PC_>Чтото типо этого

PC_>
PC_>p(a,x,m,r)[
PC_>x<m & a.x>a.m ? a.x||a.m;x+=r
PC_>f(a,x,(x+m)/2,m)
PC_>]

PC_>f(a,x,m,y)[
PC_>p a,x,m,1
PC_>p a,m,y,-1
PC_>]
PC_>


PC_>Конечно это не 45-50 байт Хаскелевское или Немерлистское, а 80 байт, но зато ИнПлейс


Функции???? Говнокод (c) ты


dmitriid.comGitHubLinkedIn
Re[73]: Говнокод
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 14:57
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>Функции???? Говнокод (c) ты


говнокод, я даже и не спорю.
я же там сказал, функции вводим пока что на этапе протопирования
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[74]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 14:59
Оценка:
Здравствуйте, Mamut, Вы писали:

M>внезапно появились функции, внезапно появился доступ по индексу, а вони-то было!


индексы в РС со времен Царя Гороха ...
читай мануал, как именно на сайте проекта
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[61]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 30.12.10 15:05
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>угу. тут привели пример генератора на nemerle, окторый прекрасно позволяет выразить пять различных мыслей, не меняя сам генератор.

M>http://rsdn.ru/forum/flame.comp/4093531.aspx
Автор: kochetkov.vladimir
Дата: 25.12.10


Ты не видишь разницу между этим

l.Fold([], (e, a) => if (n==1) [e]::a else p(l.Filter(x => x != e), n-1).Fold(a, (s, b) => (e::s)::b))


и этим

i<3?a+='+x'+i
^a


?

Но вообще генерацию паролей мне уже надоело обсуждать.
Мы увивидили штук пять разных генераторов паролей с самыми экзотическими условиями на РС.
Даже некоторые генераторы в виду гибкости были переведены в конверторы с десятиричной в двоичную и 16ти ричную системы...

Что касается Немерле, то ему все еще нужно поискать более удачный пример для себя.
Не знаю почему он время от времени здесь всплывает
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.