Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Здарова коллеги. Хаскелисты . Сишники. Жаботисты. Лиспо-веды. Счетуны . Математики и прочие любители загадок парадоксов брейнфаков, эзотерических языков. А также Илья. Сова. Дима. Саша-Меркурий. Владимир. Егорыч. Сибиряков. И Сидоров. Ну .. если Базист подтянется - будет вообще чудненько. Тема - комбинаторная логика (КЛ). Опущу детали. Интересущиеся почитают книжку Душкина или Вики. Или более фундаментальные труды Хаскелла Карри. Вкратце. Комбинатор - это некоторый константный объект который не содержит в себе переменных но позволяет комбинировать себя с аргументами и другими объектами, попутно порождая новые символьные конструкции которые также могут комбинироваться. Процесс применения комбинаторов называется аппликацией . Аппликация не подчиняется законам арифметики. По сути комбинаторы стоят на уровень ниже арифметики, образовывая некие философские базовые понятия на которых можно (наверное) построить некую арифметику. Алфавит комбинаторов состоит из: Заглавных букв (комбинаторы) Строчных букв (переменные) Круглые скобки как приоритетность Знак равенства - постулируемое правило аппликации. Душкин выделяет следующие фундаментальные комбинаторы (осторожно под катом буквы): Канцеллятор Код: plaintext 1. Коннектор Код: plaintext 1. Тождество Код: plaintext 1. Композитор Код: plaintext 1. Пермутатор Код: plaintext 1. Дубликатор Код: plaintext 1. Их названия могут отличаться от других в переводной литературе. На суть не влияет. Группы комбинаторов могут образовывать базисы. И выражаться друг через друга. Впрочем это сейчас не важно. Что я хочу сделать. Ну... наверное свой макет для экспериментов с КЛ. И реализацию на сях. Как я это хочу сделать Да вобщем-то всё равно. Можно Код: plaintext 1. 2. 3. с выводом диалога в REPL. Можно оконным приложением. Можно чтением из stdin. Ради чего я всё это делаю. 1) Ну во первых - Just For Fun. Ради удовольствия. Ради spend time. 2) Во вторых, чтобы освоить интересный раздел ФП и применить эти знания в будущем в других смежных областях. В обработке текста. 3) Попутно поковырять С/C++ и трансляторы и запилить свой собственный "deqaws" или обфускатор. В чём пока еще я не разобрался Как доказать конечность комбинаций? Возможны ли зацикливания и рекурсии? Как постулировать "число" и "операции" над ним? Как синтезировать строительные блоки - DO,WHILE,IF,IF-ELSE и использовать их? Существует ли "контекст" аппликаций? Как "оптимизировать" строковые замены? Как... e.t.c. Вобщем слушаю каменты. Ваш покорный слуга и модератор mayton P.S. Время до ПН еще есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 19:44 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonСибиряков. На меня не рассчитывай. Из всех комбинаторов я знаю только Бендера, а из поста не понял ни слова. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 19:52 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
А ну ОК. Не страшно. Побудь в подписчиках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 19:57 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovиз поста не понял ни слова. +1 mayton, не умничай, на пальцах объясни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 20:18 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Дайте подумать. Чёт упустил во введении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 20:21 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Или ссылок дай где ты этих заумностей нахватался. Примеры давай. Тут знатоков теории мало, лично я немного знал и то забыл, Саша может поймет о чем речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 20:25 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Погуглил Комбинаторная логика Комбинаторы — это просто! Это какой-то глубокоматематический капец без намека на реальное примение. Не, может я не понял глубину, но данное чтиво может взорвать мозг, а он у меня один и я его берегу )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 20:39 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
mayton Тема - комбинаторная логика (КЛ). Опущу детали. Интересущиеся почитают книжку Душкина или Вики. Или более фундаментальные труды Хаскелла Карри. Вкратце. эээээ.... как бы сказать помягче. Не надо их читать. Есть намного более лучшие, понятные и поступательно развивающие тему книги. Можешь начать с Michael Sipser, Introduction to the Theory of Computation. Душкина я не листал, но судя по нестандартности терминов которые ты использовал - читать его не надо. А Curry тут слегка не в тему, тебя зацепил разбор грамматик, а у Curry это мизерный этап, к Curry надо приходить уже хорошо разбираясь в грамматиках. Ну это что касается теории... mayton Ради чего я всё это делаю. 1) Ну во первых - Just For Fun. Ради удовольствия. Ради spend time. 2) Во вторых, чтобы освоить интересный раздел ФП и применить эти знания в будущем в других смежных областях. В обработке текста. 3) Попутно поковырять С/C++ и трансляторы и запилить свой собственный "deqaws" или обфускатор. Вопрос первый, ты очень огорчишься если я ткну пальцем в Yacc/Bison и скажу что эти приложения как раз и делают то о чем ты говоришь? :) А еще есть целый язык OCaml в котором разбор грамматик является фичей встроенной в сам язык. И мне сильно кажется что всего Верблюда именно ради этого и делали. Очень уж легко на нем делать трансляторы, за счет всего остального... mayton В чём пока еще я не разобрался Как доказать конечность комбинаций? Возможны ли зацикливания и рекурсии?Конечность? А что ты под этим понимаешь? И да, рекурсии возможны. Вот тебе рекурсия: A = Aa | ɛ А зацикливания невозможны. Зато могут быть проблемы неоднозначности: A = ba|Ba B = b В этом случае строку "ba" можно описать двумя разными путями. maytonКак постулировать "число" и "операции" над ним? NUMBER = DIGIT | NUMBER DIGIT DIGIT = 0|1|2|3|4|5|6|7|8|9 OPERATIONS = NUMBER OPERATOR NUMBER | OPERATIONS OPERATOR NUMBER OPERATOR = + | - | * | / maytonКак синтезировать строительные блоки - DO,WHILE,IF,IF-ELSE и использовать их? STATEMENTS = STATEMENTS STATEMENT | STATEMENT STATEMENT = WHILE_DO | DO_WHILE | IF_BLOCK | SOME_OTHER_PRIMITIVES WHILE_DO = WHILE CONDITION DO STATEMENTS LOOP DO_WHILE = DO STATEMENTS WHILE CONDITION CONDITION = LOGIC_OPERAND LOGIC_OPERATOR LOGIC_OPERAND maytonСуществует ли "контекст" аппликаций?Нет, по определению. Вспоминай как все это называется... Хотя... Судя по "комбинаторам" и "аппликациям" Душкин не смог найти стандартные названия "терминалы" и "правила". В общем намекаю: в нормальной литературе это называется "Context Free Grammar"... maytonКак "оптимизировать" строковые замены?Никак. Если некоторая цепочка распознавания может быть оптимизирована - значит строку можно распознать двумя способами, оптимизированным и не оптимизированным. А значит у нас появляется неоднозначность которая совершенно недопустима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2015, 06:39 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Dima TПогуглил Комбинаторная логика Комбинаторы — это просто! Это какой-то глубокоматематический капец без намека на реальное примение. Не, может я не понял глубину, но данное чтиво может взорвать мозг, а он у меня один и я его берегу ))Ой. Нет, этого Душкина читать не надо. Может для людей идущих из математических глубин это изложение будет удобоваримым. Но людям с программистской базой лучше начинать с автоматов различной степени детерминированности и регулярных выражений. Поняв эти две темы - формальные грамматики укладываются в голове очень даже легко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2015, 06:47 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
White Owlmayton Тема - комбинаторная логика (КЛ). Опущу детали. Интересущиеся почитают книжку Душкина или Вики. Или более фундаментальные труды Хаскелла Карри. Вкратце. эээээ.... как бы сказать помягче. Не надо их читать. Есть намного более лучшие, понятные и поступательно развивающие тему книги. Можешь начать с Michael Sipser, Introduction to the Theory of Computation. Эта книга? http://cglab.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf Душкина я не листал, но судя по нестандартности терминов которые ты использовал - читать его не надо. А Curry тут слегка не в тему, тебя зацепил разбор грамматик, а у Curry это мизерный этап, к Curry надо приходить уже хорошо разбираясь в грамматиках. Душкин вообще пишет в тему Haskell. А комбинаторы - просто небольшой раздел в книге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2015, 23:35 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Конечность? А что ты под этим понимаешь? И да, рекурсии возможны. Вот тебе рекурсия: A = Aa | ɛ А зацикливания невозможны. Я здесь не понимаю что обозначает символ | И не понимаю как толковать комбинатор А. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2015, 23:56 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
NUMBER = DIGIT | NUMBER DIGIT DIGIT = 0|1|2|3|4|5|6|7|8|9 OPERATIONS = NUMBER OPERATOR NUMBER | OPERATIONS OPERATOR NUMBER OPERATOR = + | - | * | / Нет нет. Это не то. Данная форма ЕМНИП называется ЕБНФ или разновидность ее. И кажется надо ставить не равно а двоеточие и равно "::=". Она описывает "возможность" применения дерева разбора к числовому выражению типа NUMBER. Но на этом возможности Яков и Бизонов заканчиваются. Меня-же интересует другое. Формализация операций над целыми. Через индукцию. Например: Код: plaintext 1. Вобщем вроде как то вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 00:04 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Никак. Если некоторая цепочка распознавания может быть оптимизирована - значит строку можно распознать двумя способами, оптимизированным и не оптимизированным. А значит у нас появляется неоднозначность которая совершенно недопустима. Возможно я другое имел в виду. К примеру если я строю некую комбинаторную машину, то я расчитываю что в выражении Код: plaintext 1. при выполнении аппликаций я вынужден буду либо выполнять поочерёдно всю последовательность нужных преобразований внутри строки либо строить доп. структуры данных (бинарные деревья) для оптимизации вычислений (особенно если формула будет в 100 или в 10000 крат превышать образец который я привёл выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 00:13 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonКонечность? А что ты под этим понимаешь? И да, рекурсии возможны. Вот тебе рекурсия: A = Aa | ɛ А зацикливания невозможны. Я здесь не понимаю что обозначает символ | И не понимаю как толковать комбинатор А. Символ "|" означает "или". В сумме это все читается: Правило А это Правило А и символ "a" или пустая строка. На практике - любая строка состоящая из нескольких (от нуля до бесконечности) символов "a". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 04:22 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonЭта книга? http://cglab.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf Нет, на моей книжной полке стоит другая (ISBN 9780534950972), но судя по оглавлению это тоже можно читать. Хотя я бы поставил третью главу после четвертой и пятой. Мне кажется что надо сначала разобраться что такое определяемые и неопределяемые языки (пятая глава) прежде чем браться за внеконтестную грамматику. Но большинство учебников (включая Сипсера) со мной не согласны .... Но это мелочи на самом деле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 04:28 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonNUMBER = DIGIT | NUMBER DIGIT DIGIT = 0|1|2|3|4|5|6|7|8|9 OPERATIONS = NUMBER OPERATOR NUMBER | OPERATIONS OPERATOR NUMBER OPERATOR = + | - | * | / Нет нет. Это не то. .... Меня-же интересует другое. Формализация операций над целыми. Через индукцию. Например: Код: plaintext 1. Вобщем вроде как то вот так.Вот это как раз оно и есть. Если ты хочешь еще и скобки и знак равенства распознавать, то просто чуть усложняешь уже показанные правила: OPERATIONS = ( OPERATIONS ) | NUMBER OPERATOR NUMBER | OPERATIONS OPERATOR NUMBER | NUMBER LOGIC_OPERATION = OPERATIONS LOGIC_OPERATOR OPERATIONS LOGIC_OPERATOR = = | < | > | and | or И все. mayton Данная форма ЕМНИП называется ЕБНФ или разновидность ее. И кажется надо ставить не равно а двоеточие и равно "::=". Я не знаю что такое ЕБНФ, извините. А двоеточие или равенство это не так уж важно, это зависит от используемого парсера (и учебника). В большинстве случаев правила определяются вообще стрелочкой, но я не помню ю-код символа "стрелочка", так что использовал знак равенства. Ну извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 04:38 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonНикак. Если некоторая цепочка распознавания может быть оптимизирована - значит строку можно распознать двумя способами, оптимизированным и не оптимизированным. А значит у нас появляется неоднозначность которая совершенно недопустима. Возможно я другое имел в виду. К примеру если я строю некую комбинаторную машину, то я расчитываю что в выражении Код: plaintext 1. при выполнении аппликаций я вынужден буду либо выполнять поочерёдно всю последовательность нужных преобразований внутри строки либо строить доп. структуры данных (бинарные деревья) для оптимизации вычислений (особенно если формула будет в 100 или в 10000 крат превышать образец который я привёл выше).ээээээ...... Во первых, ты никаких преобразований внутри строки не делаешь. Во вторых, оптимизация вычислений это вещь совершенно отдельная от разбора строки. Разбор строки это всегда превращение строки в дерево (не бинарное!). А что ты будешь делать с этим деревом потом, это уже совершенно другой вопрос и к собственно к процессу построения дерева не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 04:43 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
White OwlmaytonЭта книга? http://cglab.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf Нет, на моей книжной полке стоит другая (ISBN 9780534950972), но судя по оглавлению это тоже можно читать. Хотя я бы поставил третью главу после четвертой и пятой. Мне кажется что надо сначала разобраться что такое определяемые и неопределяемые языки (пятая глава) прежде чем браться за внеконтестную грамматику. Но большинство учебников (включая Сипсера) со мной не согласны .... Но это мелочи на самом деле :) Ага. Вот эта? http://www.amazon.co.uk/dp/0534950973 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 10:08 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonАга. Вот эта? http://www.amazon.co.uk/dp/0534950973 yes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2015, 16:25 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Глубоко не изучал исчисление и производные от него, потому не смогу подсказать вам сейчас, Марк. Идею касаемо обфускатора полностью поддерживаю и если вы всё-таки решите позже этим заниматься, готов присоединиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 14:03 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Я долго запрягаю перед тем как ехать. И вобщем-то комбинаторный код мне почему-то напомнил decaws. Тут недавно один чел создавал свой эзотерический язык c таким названием (стековая машина с минимумом команд). И у меня возникли корыстные идеи. Правда перед тем как их обсуждать хотелось-бы самому понять суть КЛ и что оно даёт. В первую очередь привлекает отсутствие машины имени Тьюринга которую мы натягиваем на любую вычислительную систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 14:37 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonТут недавно один чел создавал свой эзотерический язык c таким названием (стековая машина с минимумом команд). Он, видимо, никогда не слышал о Прологе... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 14:45 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ты хотел сказать о Форте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 14:55 |
|
||
|
Тяпничные комбинаторы
|
|||
|---|---|---|---|
|
#18+
maytonты хотел сказать о Форте? Нет, именно о Прологе. ЕМНИП, там четыре оператора и стэковая архитектура с бэк-трекингом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 15:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39000538&tid=2018914]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
84ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 194ms |

| 0 / 0 |
