Re[47]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 18:19
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я тут смотался в альтернативную реальность... Честно говоря, адекватных причин по которым вы решили зайти тут на второй круг, я для себя не нашел. Разработчики здесь точно такие же, как и там — странно ожидать иной реакции на одну и ту же вводную. Это при том, что там вы хотя бы в общих чертах описали конструкции языка, в отличии от.


KV>Зачем?


Я на этот вопрос уже отвечал, Партизану
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 18:27
Оценка: -9
Здравствуйте, elmal, Вы писали:

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


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


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

E>Вот только необходимости в ЯП для таких задач никаких нет.


Скорей необходимости в твоих комментариях нет

E>Пишется типовая реализация этой комбинаторики на нормальном высокоуровневом языке, а под конкретную задачу подбирается соответствующая грамматика, чтобы можно было максимально быстро закодировать правила любой игры. И далее на основе этой грамматики можно просто генерить код на нужном языке. Все. Обычный DSL. Вполне можно это реализовать, используя например MPS от JetBrains — будет и отладчик, и приличная IDE — зачем язык то городить под это?


Вай вай вай. Какая святая детская непосредственность.
"Генерить код любой игры", а можно я тут дополню — генерить код любой программы, ведь любой сколь угодно сложный код вплоть до ИИ — может быть тоже частью игры

"Обычный ДСЛ", Жет браинс .... вай вай вай, и сколько на счету у вас таких ДСЛ, а синтаксис такой ДСЛ, чтоб можно было "генерить просто код любой игры", а судя по контексту решаемых тут задач да и факториалов, всяки разных генераторов, парсеров, операций на массивах и многое другое что мы тут пережевываем ... а, юное дарование ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[32]: Ультракороткий язык программирования RS
От: Privalov  
Дата: 22.12.10 19:11
Оценка: +4 :)
Здравствуйте, Mamut, Вы писали:

M>ЗЫ. Это мне напоминает эпоху синтасического оверхеда и blackbox'а.


Тут такие страсти кипят, а мне работать надо. Топик и в самом деле похож на развитие темы о синтаксическом оверхеде, только с автором той темы можно было по-человечески разговаривать. Во всяком случае он своих оппонентов ни разу не назвал быдлокодерами, а фрагменты их исходников — говнокодом.
Re[46]: Ультракороткий язык программирования RS
От: Antikrot  
Дата: 22.12.10 19:13
Оценка: +1
Здравствуйте, PC_2, Вы писали:

PC_>
PC_>for(int i=0; i<100; i++)
PC_>{
PC_>   int a = 5+100+1000;
PC_>   int b = 12 + 256;
PC_>   arr[i] = a + b;
PC_>}
PC_>


PC_>Точней я то знаю ...

ну раз знаешь, то вполне способен осознать, что после хойстинга будет ровно вот это:

PC_>
PC_>a := 5+100+1000;
PC_>b := 12 + 256;
PC_>arr.i = a + b;
PC_>


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

разницы вообще никакой, за исключением того, что у тебя надо это всё руками делать, а в сях за тебя сделает компилятор
Re[26]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 22.12.10 19:18
Оценка:
Здравствуйте, avpavlov, Вы писали:


KV>>Ну как бы отловить данную конкретную "unreachable statement" для произвольных типов i и n как бы не очень реально. Более простые ситуации, компилятор вполне отлавливает:


A>А где в твоём примере произвольные типы i и n? Ведь Немерле вывыдет их тип в момент компиляции, так что они станут вовсе даже непроизвольными.


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

IMHO, т.к. тут я ни разу не специалист.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[46]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 22.12.10 19:18
Оценка: +3
Здравствуйте, PC_2, Вы писали:

KV>>Ок, по поводу PEG'а тут уже сказали (а он поставляется с компилятором из коробки, если что), боюсь RS будет порван в клочья, если мы займемся


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


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

Сейчас же, увидев хардкорное:

$<#..$($[1..length].Map(_ => alfa[rnd.Next(0, alfa.Length - 1)]); ""; _.ToString())#>;


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

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

PC_>Я не знаю кто писал немерлу, но так испоганить бедные 5 строчек кода шарпа (один иф и два фора) это еще нужно крепко постараться

PC_>Ничего личного, так сказать. Просто пример попался неудачный тебе.

Отнюдь, вот ровно те же самые строчки, но на немерле (в каком месте, там кстати, случайные пароли генерируются?):

def F(alphabet, list, word, level, wordLength)
{
        if (level < wordLength)
                foreach(c in alphabet)
                        F(alphabet, list, word + c, level + 1, wordLength);
        else
                list.Add(word);
}


похоже, но чуть короче за счет отсутствия необходимости объявлять типы. А можно даже одну строчку убрать:

def F(alphabet, list, word, level, wordLength)
{
    | _ when (level < wordLength) =>
        foreach(c in alphabet)
            F(alphabet, list, word + c, level + 1, wordLength);
    | _ => list.Add(word);
}


(опять что-то уже не очень знакомое и кажется говнокодом, да?)

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


да, в парсерах немерле силен.

PC_>Я подумаю на досуге. По замыслу комбинаторикой должни были заниматься Группыны.


ничего, я никуда не спешу

KV>>Правда, есть одно "но". Что-то я не увидел вашей реализации простой генерации пароля. Я недоглядел или ее действительно нет?

PC_>мы еще задачу толком не сформулировали

я об исходной задаче о генерации пароля по алфавиту и длине, сформулированной вами.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Ультракороткий язык программирования RS
От: Sharowarsheg  
Дата: 22.12.10 20:14
Оценка: 5 (2) +1 :))) :))) :))) :)
Здравствуйте, TimurSPB, Вы писали:

TSP>А корованы? Можно будет грабить корованы?


оператор грабежа "!"
корован "..."

маленькое ограбление
...!

большое
.......!!!
Re[2]: Ультракороткий язык программирования RS
От: Sharowarsheg  
Дата: 22.12.10 20:19
Оценка:
Здравствуйте, DarkGray, Вы писали:

PC_>>Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.

PC_>>Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 1 минуты.
PC_>>А закодить шахматы займет ну может 1 час.

DG>самое фиговое, что ты похоже пишешь все это серьезно...


....

DG>твоя же заявка, а также дальнейший разговор в теме — дает не очень хорошие ответы на эти вопросы


Не дает, но я знаю как минимум одно практическое применение этому языку. Там же где и брейнфаку — виртуальная машина внутри программы для затруднения реверсирования.
Re[12]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.12.10 20:23
Оценка: +2
Здравствуйте, PC_2, Вы писали:

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


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

Ну как минимум грозился решением. На sql.ru последний раз грозился более чем 3 недели назад. Здесь же начал с закидона на 1 час в заглавном сообщении.

PC_>"Обычный ДСЛ", Жет браинс .... вай вай вай, и сколько на счету у вас таких ДСЛ, а синтаксис такой ДСЛ, чтоб можно было "генерить просто код любой игры", а судя по контексту решаемых тут задач да и факториалов, всяки разных генераторов, парсеров, операций на массивах и многое другое что мы тут пережевываем ... а, юное дарование ?


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

многое другое что мы тут пережевываем... — дай подумать
Ниужели это шахматы?

Прав elmal, говоря что язык для комбинаторики. Единственный доступный критерий остановки вычислений — конец диапазонов учавствующих в выражении счетчиков. Что-то большее, чем красиво прогнать N счетчиков от упора до упора, твой язык не может. Ты же пытаешься выдать его за язык общего назначения, и видимо потому решил в ответ нахамить.

Попугай еще группами и аспектами. Но что-то я предвкушаю что они не вытянут язык на уровень общего назначения.

Я тут немного поигрался с интерпретатором, не могу удержаться от примера по поводу необязательности закрывающей ковычки при задании строк:
E a:=1 E b:=2
E c:='earl of chatham' E d:= )))

результат:

1
2
earl of chatham' E d:= )))

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

Предлагаю не доводить до 70и страниц, как на sql.ru, вижу ты итак уже разочарован хорьками, зовущими себя программистами.
Ушел отлаживать пузырёк
Re[47]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 20:53
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

Замечательно.
Тоесть чтобы выпрямить код Немерла, пришлось почти полностью откатиться к Шарпу на этом примере ?
Хочется тогда спросить как в той украинской рекламе "Навищо платит бильше"(с) (Зачем платить больше)

Кстате аргумент, что мол код Немерла такой запутанный, чтобы специально мне дошкулить и показать какой нечитаемый у меня
код, еще более занимателен.

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

Когда я показываю свой код сортировки на руби и на РС, я показываю:
Вот смотрите, у меня код в 5 раз короче. Поэтому он может быть для когото не понятным без мануала,
но обьективно он короче. Тоесть есть смысл разбираться с синтаксисом, чтобы писать короче и лучше.
Что мы кстате говоря и делаем.

С Немерлом же этого нет, код длинее и непонятней
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[13]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 20:59
Оценка: :)
S>Попугай еще группами и аспектами. Но что-то я предвкушаю что они не вытянут язык на уровень общего назначения.

Язык общего назначения.
Циклы есть, ветвления есть, массивы есть, разные числовые и строковые типы — есть.
Что еще нужно ? Это тот каркас который делает язык полным по тьюрингу.

S>Я тут немного поигрался с интерпретатором, не могу удержаться от примера по поводу необязательности закрывающей ковычки при задании строк:


Кавычка может не закрываться если строчка заканчивается в тойже строке
Например

E S:='Жил был у бабушки серинький козлик

А если вот так то ковычка нужна.

E S:='Жил был у бабушки серинький' + ' козлик'

Вобщемто это сделано по приколу, чтобы получить самый короткий Хелоу ворд в мире, так что щипотка синт. сахарка не помешает
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[14]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.12.10 21:04
Оценка:
Здравствуйте, PC_2, Вы писали:

S>>Попугай еще группами и аспектами. Но что-то я предвкушаю что они не вытянут язык на уровень общего назначения.


PC_>Язык общего назначения.

PC_>Циклы есть, ветвления есть, массивы есть, разные числовые и строковые типы — есть.
PC_>Что еще нужно ? Это тот каркас который делает язык полным по тьюрингу.

Значит тебе ничто не помешает предъявить двоичный поиск или вычисление квадратного корня методом Ньютона с указанной точностью?

Или попросишь обойтись утверждениями о полноте по Тьюрингу?
Re[14]: Ультракороткий язык программирования RS
От: Sinix  
Дата: 23.12.10 04:47
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Вобщемто это сделано по приколу, чтобы получить самый короткий Хелоу ворд в мире, так что щипотка синт. сахарка не помешает


Короче HQ9+?
Re[48]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 23.12.10 07:27
Оценка:
M>>Ты показал код, который надо еще откомпилироваьт/интерпретировать. То, что в нем простой синтаксис, не значит, что понятно, что быдет делать компилятор, и будет ли он что-либо оптимизировать. Потому что ыделенное — это тот же цикл, что и выше.

PC_>не неси бред,


Бред несешь ты. Рассказываешь про крутость компилятора и в качестве доказательств показываешь код


dmitriid.comGitHubLinkedIn
Re[14]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 23.12.10 07:54
Оценка: +1
S>>Попугай еще группами и аспектами. Но что-то я предвкушаю что они не вытянут язык на уровень общего назначения.

PC_>Язык общего назначения.

PC_>Циклы есть, ветвления есть, массивы есть, разные числовые и строковые типы — есть.
PC_>Что еще нужно ? Это тот каркас который делает язык полным по тьюрингу.

Ассемблер тоже полон по Тьюрингу. И?

Дело не в полноте по Тьюрингу, а в выразительности.

Если у тебя для того, чтобы изменить операцию fold left, надо перепиливать интерпретатор, то нафиг нужно?


dmitriid.comGitHubLinkedIn
Re[3]: Ультракороткий язык программирования RS
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 23.12.10 08:39
Оценка:

Ruby
... много страшного кода пузырьковой сортировки ...
RS

X.I<X.J?X.I:=:X.J


Код на ruby неправильный. Правильный такой:

array.sort!


Короче, чем на RS. Еще примеры практического применения?
Re[15]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 08:43
Оценка:
Здравствуйте, Sinix, Вы писали:

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


PC_>>Вобщемто это сделано по приколу, чтобы получить самый короткий Хелоу ворд в мире, так что щипотка синт. сахарка не помешает


S>Короче HQ9+?



С каких это пор HQ9+ это уже язык ?
Языком программирования язык не поворачивается его назвать,
это просто свитч на комманды, коих всего три, цель которого "написать самый короткий Хелоу Ворд".

На языке HQ9+, Хелоу Ворд записывается в один символ:
H


Правда HQ9+, обесчестен, самый короткий Хелоу Ворд в языке RS

пустая строка


Или, длина выражения + одна ковычка.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[4]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 08:45
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>

EOH>Ruby
EOH>... много страшного кода пузырьковой сортировки ...
EOH>RS
EOH>

EOH>X.I<X.J?X.I:=:X.J
EOH>


EOH>Код на ruby неправильный. Правильный такой:


EOH>
EOH>array.sort!
EOH>


EOH>Короче, чем на RS. Еще примеры практического применения?



шутка произнесена уже 5й раз ( я просто периодический бред буду нумеровать )
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[15]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 08:47
Оценка:
M>Если у тебя для того, чтобы изменить операцию fold left, надо перепиливать интерпретатор, то нафиг нужно?

А ассемблер и Си не нужно переписать чтобы изменить операцию фолд лефт ?
К томуже у меня нет операции фолд лефт.
Это просто свертка по опператору — базовая операция, для нахождения минимумов, максимов в ряде,
суммирования ряда и тд тп.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[49]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 08:50
Оценка: :))) :)))
PC_>>не неси бред,

M>Бред несешь ты. Рассказываешь про крутость компилятора и в качестве доказательств показываешь код


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

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