Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, _nn_, Вы писали:
__>>Здравствуйте, PC_2, Вы писали:
__>>>>1 2 + 2 3 + 3 4 + 4 5 + 5 6 + 6 7 + 7 8 + 9 0 + 1 2 + 2 3 + 4 5 + 5 6 + 7 8 + 9 0 + 1 2 + 3 4 + 5 6
PC_>>>тю
PC_>>>A.I.0 += A.I.(J>0?J)
PC_>>>где А двумерный массив всего того что ты там не поленился печатать вверху
__>>А в явном виде с числами без переменных неужели никак ? __>>Где же здесь экономия символов ? __>>Да еще и переменную заводить нужно.
PC_>В твоем примере, учитывая размер харкода массива, экономия символов составит 2,5%
Хотя нуна еще подумать, этот ряд гдето будет сходится, учитывая неоптимальный дубляж символа + в унылом говнокоде Джи,
тоесть на массиве скажем в килобайт, исходник кода будет больше исходника кода на РС
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, PC_2, Вы писали:
PC_>>Здравствуйте, _nn_, Вы писали:
__>>>Здравствуйте, PC_2, Вы писали:
__>>>>>1 2 + 2 3 + 3 4 + 4 5 + 5 6 + 6 7 + 7 8 + 9 0 + 1 2 + 2 3 + 4 5 + 5 6 + 7 8 + 9 0 + 1 2 + 3 4 + 5 6
PC_>>>>тю
PC_>>>>A.I.0 += A.I.(J>0?J)
PC_>>>>где А двумерный массив всего того что ты там не поленился печатать вверху
__>>>А в явном виде с числами без переменных неужели никак ? __>>>Где же здесь экономия символов ? __>>>Да еще и переменную заводить нужно.
PC_>>В твоем примере, учитывая размер харкода массива, экономия символов составит 2,5%
PC_>Хотя нуна еще подумать, этот ряд гдето будет сходится, учитывая неоптимальный дубляж символа + в унылом говнокоде Джи, PC_>тоесть на массиве скажем в килобайт, исходник кода будет больше исходника кода на РС
Я в тексте не нашел ответа на мой вопрос.
Ваши аргументы не являтся ответом на вопрос как сделать без переменной.
P.S.
Если вы высказываете точку зрения приводите аргументы по теме.
M>>Ну и? То, что ты напишешь это в одну строчку, не значит, что for там внезапно исчез. Он там остался, скрытый синтаксичесим сахаром
PC_>Ну да, а когда ты пишешь Фор, это тот же ассемблер, скрытый синтаксическим сахарком ...
Главное, что в случае твоего сахара программист должен четко понимать, что чудес не бывает, и что I/J и прочие !счетчики разворачиваются в банальеный цикл. Чудес не бывает.
Здравствуйте, Mamut, Вы писали:
M>>>Ну и? То, что ты напишешь это в одну строчку, не значит, что for там внезапно исчез. Он там остался, скрытый синтаксичесим сахаром
PC_>>Ну да, а когда ты пишешь Фор, это тот же ассемблер, скрытый синтаксическим сахарком ...
M>Главное, что в случае твоего сахара программист должен четко понимать, что чудес не бывает, и что I/J и прочие !счетчики разворачиваются в банальеный цикл. Чудес не бывает.
Программисты всех стран четко понимают ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
H>>Здравствуйте, PC_2, Вы писали: PC_>>>Отлично, включите этот сорц в исходные коды генератора паролей и тогда проведем замер органа ... H>>Т.е. ты действительно считаешь что можешь в разумные сроки написать на своем языке движок регулярных выражений?
PC_>Нет, я не считаю. Просто мне предложили генерить пароли по регекспу ... PC_>Я предложил если делать замер, то не на библиотечных функциях, а на каркасе самого языка.
Ты не ответил. Если ты требуешь реализации рег. выражений на Немерле, то мы вправе потребовать реализации рег. выражений на PC_2.
PC_>Иначе както несправедливо, библиотечных функций в языке у меня нет ...
То есть ты будегшь реализовывать движок рег. выражений на PC_2?
M>>>>Ну и? То, что ты напишешь это в одну строчку, не значит, что for там внезапно исчез. Он там остался, скрытый синтаксичесим сахаром
PC_>>>Ну да, а когда ты пишешь Фор, это тот же ассемблер, скрытый синтаксическим сахарком ...
M>>Главное, что в случае твоего сахара программист должен четко понимать, что чудес не бывает, и что I/J и прочие !счетчики разворачиваются в банальеный цикл. Чудес не бывает.
PC_>Программисты всех стран четко понимают ...
!N := 1..4
S := 0
S += N
Здесь есть цикл. То, что он у тебя скрыт, не значит, что его там нет. при этом в других языках (том же С++, кстати), компилятор может спокойно от цикла избавиться на этапе компиляции. Вряд ли такое возможно у тебя
Здравствуйте, Mamut, Вы писали:
H>>>Здравствуйте, PC_2, Вы писали: PC_>>>>Отлично, включите этот сорц в исходные коды генератора паролей и тогда проведем замер органа ... H>>>Т.е. ты действительно считаешь что можешь в разумные сроки написать на своем языке движок регулярных выражений?
PC_>>Нет, я не считаю. Просто мне предложили генерить пароли по регекспу ... PC_>>Я предложил если делать замер, то не на библиотечных функциях, а на каркасе самого языка.
M>Ты не ответил. Если ты требуешь реализации рег. выражений на Немерле, то мы вправе потребовать реализации рег. выражений на PC_2.
PC_>>Иначе както несправедливо, библиотечных функций в языке у меня нет ...
M>То есть ты будегшь реализовывать движок рег. выражений на PC_2?
Нет, эта идея была сарказмом, кто с юмором тот понял.
Предлагаю выбросить регекспы и просто последовательно по алфавиту генерить код.
На шарпе я уже предоставил, это пять строк кода. Остался ход за РС
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
H>>>>Здравствуйте, PC_2, Вы писали: PC_>>>>>Отлично, включите этот сорц в исходные коды генератора паролей и тогда проведем замер органа ... H>>>>Т.е. ты действительно считаешь что можешь в разумные сроки написать на своем языке движок регулярных выражений?
PC_>>>Нет, я не считаю. Просто мне предложили генерить пароли по регекспу ... PC_>>>Я предложил если делать замер, то не на библиотечных функциях, а на каркасе самого языка.
M>>Ты не ответил. Если ты требуешь реализации рег. выражений на Немерле, то мы вправе потребовать реализации рег. выражений на PC_2.
PC_>>>Иначе както несправедливо, библиотечных функций в языке у меня нет ...
M>>То есть ты будегшь реализовывать движок рег. выражений на PC_2?
PC_>Нет, эта идея была сарказмом, кто с юмором тот понял. PC_>Предлагаю выбросить регекспы и просто последовательно по алфавиту генерить код. PC_>На шарпе я уже предоставил, это пять строк кода. Остался ход за РС
Что ты привязался к Шарпу? Тебе привели код в одну строку на Немерле
Здравствуйте, PC_2, Вы писали:
__>>Я в тексте не нашел ответа на мой вопрос. __>>Ваши аргументы не являтся ответом на вопрос как сделать без переменной.
PC_>Мы замер длины кода смотрели, не ?
Приведите сначала полный код на RS.
А там уже посмотрим.
M>Здесь есть цикл. То, что он у тебя скрыт, не значит, что его там нет. при этом в других языках (том же С++, кстати), компилятор может спокойно от цикла избавиться на этапе компиляции. Вряд ли такое возможно у тебя
угу, а еще не понятно что будет делать компилятор в таком случае ...
for(int i=0; i<100; i++)
{
int a = 5+100+1000;
int b = 12 + 256;
arr[i] = a + b;
}
Точней я то знаю ...
но стоит ли говорить что это реализовано через жопу, почему и нормальный Си компилятор это мегабайты в архиве
у меня код будет куда проще для оптимизации, и я бы сказал что он уже соптимизирован в трансляторе на 20 кб
a := 5+100+1000;
b := 12 + 256;
arr.i = a + b;
За сим удаляюсь, от плодотворной ( к сожалению только для противоположной стороны ) дискусии
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Без проблем, если сами регулярные выражения тоже будут реализованы в Немерле ( а не заимстованы из библиотек )
Ок, по поводу PEG'а тут уже сказали (а он поставляется с компилятором из коробки, если что), боюсь RS будет порван в клочья, если мы займемся реализацией сколь-нибудь сложной грамматики. Поэтому предлагаю упростить условия и остановиться на упрощенном синтаксисе и, в свою очередь, постараюсь обойтись без PEG, а использую рукопашный парсер:
{X,n} — обозначает n случайных символов, принадлежащих группе X
где X — выражение, объединяющее типы групп:
0 цифры A большие буквы латинского алфавита a малые буквы латинского алфавита ? символы
т.е.
asd{0,3}fgh означает в т.ч. asd194fgh, а под asd{0a?,4}fgh вполне подходит asd@#a1fgh или asd)12afgh и т.п. Если необходимо использовать открывающую фигурную скобку в шаблоне, то она должна быть заэкранирована обратным слешем: asd\{fgh{0,3}
код должен корректно обрабатывать возможные синтаксические ошибки в шаблоне (хотя бы сообщать о них) и позволять добавлять новые типы групп без переписывания всего парсера.
Правда, есть одно "но". Что-то я не увидел вашей реализации простой генерации пароля. Я недоглядел или ее действительно нет?
Здравствуйте, PC_2, Вы писали:
M>>Здесь есть цикл. То, что он у тебя скрыт, не значит, что его там нет. при этом в других языках (том же С++, кстати), компилятор может спокойно от цикла избавиться на этапе компиляции. Вряд ли такое возможно у тебя
PC_>угу, а еще не понятно что будет делать компилятор в таком случае ...
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_>у меня код будет куда проще для оптимизации, и я бы сказал что он уже соптимизирован в трансляторе на 20 кб
PC_>
Ты показал код, который надо еще откомпилироваьт/интерпретировать. То, что в нем простой синтаксис, не значит, что понятно, что быдет делать компилятор, и будет ли он что-либо оптимизировать. Потому что ыделенное — это тот же цикл, что и выше.
PC_>За сим удаляюсь, от плодотворной ( к сожалению только для противоположной стороны ) дискусии
Здравствуйте, PC_2, Вы писали:
KV>>Вы с Сергеем Зефиром (thesz) часом не знакомы?
PC_>Нет, не знаком. А почему вы спрашиваете ?
Да просто у меня на днях состоялся с ним короткий, но интересный разговор о низкоуровневости немерла, где он высказывал весьма похожие по духу мысли. Напомнило, так сказать.
KV>Ок, по поводу PEG'а тут уже сказали (а он поставляется с компилятором из коробки, если что), боюсь RS будет порван в клочья, если мы займемся
По уровня говнокода, боюсь, вы порвали даже J
Я не знаю кто писал немерлу, но так испоганить бедные 5 строчек кода шарпа (один иф и два фора) это еще нужно крепко постараться
Ничего личного, так сказать. Просто пример попался неудачный тебе. Хотя тут махали флагами, я как понял Немерла флагман в парсерах, от чего такой весь сыр бор затеяли с усложнением задачи.
KV>реализацией сколь-нибудь сложной грамматики. Поэтому предлагаю упростить условия и остановиться на упрощенном синтаксисе и, в свою очередь, KV>постараюсь обойтись без PEG, а использую рукопашный парсер
KV>{X,n} — обозначает n случайных символов, принадлежащих группе X KV>где X — выражение, объединяющее типы групп: KV>0 цифры KV>A большие буквы латинского алфавита KV>a малые буквы латинского алфавита KV>? символы KV>т.е.
Я подумаю на досуге. По замыслу комбинаторикой должни были заниматься Группыны.
KV>asd{0,3}fgh означает в т.ч. asd194fgh, а под asd{0a?,4}fgh вполне подходит asd@#a1fgh или asd)12afgh и т.п. Если необходимо использовать открывающую фигурную скобку в шаблоне, то она должна быть заэкранирована обратным слешем: asd\{fgh{0,3}
KV>код должен корректно обрабатывать возможные синтаксические ошибки в шаблоне (хотя бы сообщать о них) и позволять добавлять новые типы групп без переписывания всего парсера.
не забудьте, прошлый пример както не работал для отрицательных значений факториала ...
KV>Правда, есть одно "но". Что-то я не увидел вашей реализации простой генерации пароля. Я недоглядел или ее действительно нет?
мы еще задачу толком не сформулировали
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
M>Ты показал код, который надо еще откомпилироваьт/интерпретировать. То, что в нем простой синтаксис, не значит, что понятно, что быдет делать компилятор, и будет ли он что-либо оптимизировать. Потому что ыделенное — это тот же цикл, что и выше.
не неси бред,
устаешь от тебя ... честно ....
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Я тут смотался в альтернативную реальность... Честно говоря, адекватных причин по которым вы решили зайти тут на второй круг, я для себя не нашел. Разработчики здесь точно такие же, как и там — странно ожидать иной реакции на одну и ту же вводную. Это при том, что там вы хотя бы в общих чертах описали конструкции языка, в отличии от.
Здравствуйте, PC_2, Вы писали:
PC_>Вот очень приблизительный набросок Шахмат, в 1 кб на РС PC_>Просьба хорькам не разбирать код, тут еще ничего не работает !
Судя по коду, это язык для написания игр типа шахмат . Заточенный на комбинаторику, перебор всех вариантов. Ну что могу сказать, в принципе имеет право на жизнь. Вот только необходимости в ЯП для таких задач никаких нет. Пишется типовая реализация этой комбинаторики на нормальном высокоуровневом языке, а под конкретную задачу подбирается соответствующая грамматика, чтобы можно было максимально быстро закодировать правила любой игры. И далее на основе этой грамматики можно просто генерить код на нужном языке. Все. Обычный DSL. Вполне можно это реализовать, используя например MPS от JetBrains — будет и отладчик, и приличная IDE — зачем язык то городить под это?