LINUX.ORG.RU
Ответ на: комментарий от anonymous

А тебе, на уровне ЯП, могут предоставить и урезанную версию, и вовсе ничего.

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

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

говорили о конкретном ЯП, где предоставляется нормальный евал

Вот дам я тебе бинарник, написанный на Racket — как ты сможешь там вызвать define?

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

Вот дам я тебе бинарник, написанный на Racket — как ты сможешь там вызвать define?

Бинарников в Racket нет, компиляция идет в байткод. В байткоде есть дефайн-форма.

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

Ветвление же нарушает тот же принцип причинности, то есть не устраняет проблему, которую Эверетт пытался устранить.

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

например, в навигации используется двумерная плотность вероятности, по времени. её можно расширить на многомерное время.

Ветвление же нарушает

ага, goto считается вредным. вот например смотришь ты ассемблерный код, и видишь octopus stack. но у тебя нет такого паттерна — а есть только фортран. в итоге ты сделаешь вывод, что это лапшекод, который какой-то там принцип (как данность, данный сверху, с данной точки зрения, ограничений модели со скалярным временем, например) нарушает.

другой вариант — ты распознаёшь образ «octopus stack», и делаешь метавычисления, логический вывод: «octopus stack» => замыкания => объектная система => полиморфизм => MOP и CLOS => АОП, аспектно-ориентированное программирование.

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

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

его, принципа причинности, формулировку можно ослабить.

Нельзя.

её можно расширить на многомерное время.

Нельзя.

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

течения существуют. Но лучше всего их описывает магия. Или фракталы. Не имеет значения.

вот тебе ещё на закусь про фракталы: пространство естественных систем

цитирую про твою любимую теорему К. Геделя:

Известно, что К. Гедель при доказательстве своей теоремы о неполноте опирался на подобную лемму об автореферентности. Поэтому эта знаменитая теорема должна присутствовать в мире естественных систем

Для значения функции истинности тогда получается знакомое нелинейное уравнение

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

Разворачивая эти автореферентные предложения, узнаем нелинейные функции и операторы математической физики

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

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

в которых легко узнаются известные из теории хаотических динамических систем отображения типа “колоколообразная кривая”, логистическое отображение, преобразование пекаря и другие им эквивалентные.

Соответственно этим структурам существуют и “нелинейные” числа, так называемые р-адические числа ( о них пойдет речь дальше, здесь приводится лишь общий вид).

где цифры берутся из множества , р- простое число и разложение бесконечно вправо, так же как и для функций.

Такое расширение понятия нелинейности позволяет с единых математических основ объединить изучение естественных систем, имея ввиду их самоорганизационные свойства. Однако это расширение порождает две существенные особенности, касающиеся способов математического описания явлений. Во-первых, для таких множеств не выполнена одна из основных аксиом математического анализа – аксиома фундирования, она же регулярности: такие множества отрицают наличие “дна элементарности”, для них бессмысленно рассматривать изолированные точки. Это существенно иррегулярный мир, мир неспрямляемых кривых, поверхностей и форм Во – вторых, не выполнена еще одна их основных аксиом анализа – аксиома Архимеда, она же измеримости, которая устанавливает связь между геометрией и построением формул. Как следствие эти иррегулярные, фрактальные множества оказываются нерекурсивными и неразрешимыми. Движение по таким множествам возможно лишь по правилам интуиционисткой логики, а элементарная точка оказывается нераспознаваемой. Простое, детальное рассмотрение этих вопросов изложено в работах автора .

р-Адическая феноменология единства естественных систем.

р - Адическая математика и картина мира

Как следует из изложенного фрактальный и p-адический миры можно считать синонимами.

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

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

Наконец у p-адической математики есть еще сторона, неразрывно связанная с вышеизложенным. Устройство, или топология, p-адических числовых полей позволяет рассматривать набор цифр разложения чисел как буквы некоторого алфавита . Тогда числа предстают в виде слов - кодов Гензеля, которые группируются в предложения, тексты, формальные языки и теории. Весь Мир тогда являет собой гипермножество . Поэтому p-адические числа пригодны для кодирования информации, описания какой - либо области алгоритмического или языкового характера. Это значит, что в p-адических фракталах, возможно впервые, соединяются материальное, физическое и символьное, языковое представления о Мире. Тема эта слишком сложна и с точки зрения математического описания, по -видимому, еще не сформирована, поэтому мы обратимся к двум другим сферам - психологии и философии, где аналогии могут быть прослежены. Отметим лишь, что сетевая структура Мира объясняет существование отмеченных выше степенных зависимостей в разнородных по природе областях - материальных, языковых. Поэтому становится возможным количественное изучение таких явлений как взаимодействие общества и внешней среды - ландшафта, экономики, а значит и исследований в русле идей коэволюции -совместной эволюции человека и природы..

то есть: есть прямая аналогия между этим описанным выше уравнением (нелинейное уравнение из функций истинности формулы, решение этого уравнения и поиск неподвижной точки) и между метакомпилятором META II, например (в котором язык описания грамматики это по сути метаязык, реализованный тоже как отображение неподвижной точки: метакомпилятор от грамматики метакомпилятора порождает его собственный исполняемый код, то есть, применив код к грамматике мы получим сами себя, то есть, неподвижную точку. затем язык расширяется и мы получаем поиск неподвижной точки какого-то ДРУГОГО языка, DSL — как в уравнении для p-адических чисел выше).

это означает, что язык (и способы мышления, выражаемые посредством метаязыка) — это фрактал.

p-адические числа — это на самом деле, очень простая штука — это просто КБЧ
(кстати, в связи с этим Катющик, не признающий комплексные числа, например sqrt(-1) упорот более чем полностью — ведь в 5-ричной системе i,-i это просто всего-навсего КБЧ «v?1 = ...412013233 и ...032431212» , то есть, если переписать КБЧ через функции-генераторы то мы можем работать с комплексной единицей напрямую)

то есть: есть одно и то же выражение, уравнение, возникающее на трёх уровнях:

* с физической точки зрения это уравнение

* с математической (геометрической), это фрактал

* с математической, это фрактал в КБЧ — нелинейное уравнение с функциями истинности

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


это как перейти от императивного алгоритма к алгоритмам Маркова или Н-модели в ограничениях.

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

пруфлинк, что нельзя? вот например по соглашению о знаке метрического тензора мы можем понимать 4-мерное пространство Минковского как 3 координаты пространственной + 1 временную. или, с другим знаком — 1 пространственную и 3 временных.

вот тебе контрпример, что можно.

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

Сколько 4.2 сразу.

Бинарников в Racket нет

Есть http://docs.racket-lang.org/raco/exe.html

компиляция идет в байткод

> (require disassemble)
> (define (f x) 1)
> (disassemble f)
       0: 488943f8                       (mov (mem64+ rbx #x-8) rax)
       4: 4883c3f8                       (add rbx #xfffffffffffffff8)
       8: b803000000                     (mov eax #x3)
       d: 4c8b75c8                       (mov r14 (mem64+ rbp #x-38))
      11: 4883c428                       (add rsp #x28)
      15: 415d                           (pop r13)
      17: 415c                           (pop r12)
      19: 5b                             (pop rbx)
      1a: 5d                             (pop rbp)
      1b: c3                             (ret)

В байткоде есть дефайн-форма.

И что? В бинарнике Си есть почти все ассемблерные команды. Значит ли это, что если я тебе дам прграмму /bin/true, то ты сможешь исполнить произвольный ассемблерный код? И кроме того байт, который можно декомпилировать в define != форма define. А то можно договориться до того, что любая программа на Си содержит в себе язык Си (ведь декомпилировать в какой-то степени можно).

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

Выбор плюса или минуса вопрос соглашения, он никак не связан с тем, что мы считаем временными координатами, а что - пространственными.

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

Есть http://docs.racket-lang.org/raco/exe.html

Этот бинарник содержит байткод с интерпретатором и джитом. Машкода в нем нету.

(require disassemble)

Да только этот машкод появляется исключительно при первом запуске ф-и. В ехешнике никакого машкода нет.

И что?

И то. Семантически, Racket - интерпретатор байткода. И исключительно для оптимизации ф-и джитятся, причем так, чтобы не нарушать семантику интерпретации (то есть ты не сможешь отличать «чистый» интерпретатор Racket и интерпретатор с джитом по их поведению). В байткоде (то есть в том коде что непосредственно исполняется) есть дефайн-формы. Во время исполнения кода эти дефайн-формы исполняются и производятся вполне определенные эффекты (связывание переменных в неймспейсе и т.п.).

Раз ты не можешь отличить Racket по семантике от «чистого» интерпретатора то можно считать, чот дефайн-формы там етсь. Просто потмоу что язык и рантайм устроент так, чтобы ты _не мог_ построить контрпример.

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

Конечно же есть. В рантайме есть символ #%define-values, с ним связана определенная семантика.

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

И что? В бинарнике Си есть почти все ассемблерные команды. Значит ли это, что если я тебе дам прграмму /bin/true, то ты сможешь исполнить произвольный ассемблерный код?

скорее всего да, если это gnu /bin/true. В силу того, что её исходник содержит Over9000 строк на C (в развёрнутом виде).

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

скорее всего да, если это gnu /bin/true.

А каким образом ты выполнишь этот произвольный код? Мне честно интересно. Есть бинарник gnu /bin/true. 16Kb ассемблерного кода. Твоя задача: с его помощью исполнить ассемблерный код, выводящий на stdout строку «Hello» (нужные ассемблерные команды там есть, так как справку он штатно выводить умеет). Твои действия?

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

Твоя задача: с его помощью исполнить ассемблерный код, выводящий на stdout строку «Hello» (нужные ассемблерные команды там есть, так как справку он штатно выводить умеет). Твои действия?

просто вместо этого:

Использование: /bin/true [ игнорируемые аргументы командной строки ]
       или:    /bin/true КЛЮЧ
Выходит с успешным статусом.
...
напишу в бинарнике Hello. Ну и сломаю вызов getopt(3), что-бы оно всегда --help отрабатывала.

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

просто вместо этого ... напишу в бинарнике Hello

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

Хотя мне это доказательство напоминает доводы в пользу утверждения «неважно, на каком языке писать». Ведь все тьюринг-полные языки эквивалентны, а значит на брейнфаке или в машинных кодах можно написать всё, что можно написать на C++. И в этом смысле компилятор от интерпретатора не отличается вообще ничем. Только удобством изменения программы после запуска этой программы.

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

Хотя мне это доказательство напоминает доводы в пользу утверждения «неважно, на каком языке писать». Ведь все тьюринг-полные языки эквивалентны, а значит на брейнфаке или в машинных кодах можно написать всё, что можно написать на C++. И в этом смысле компилятор от интерпретатора не отличается вообще ничем. Только удобством изменения программы после запуска этой программы.

ну вот. На восемнадцатой странице обсуждения, кто-то понял, о чём я говорил. Это радует.

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

На восемнадцатой странице обсуждения, кто-то понял, о чём я говорил.

Наверное потому что люди определяют объекты по их свойствам, а не по сути. А твои утверждения выглядят как «Чем алмаз от угля отличается? --- Ничем: они состоят из одинаковых атомов. --- Но ведь алмаз твёрдый, а уголь мягкий. --- И что? Из угля можно получить алмаз при некоторых условиях, значит это одно и то же.».

А свойства интерпретатора и компилятора существенно отличаются.

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

Наверное потому что люди определяют объекты по их свойствам, а не по сути. А твои утверждения выглядят как «Чем алмаз от угля отличается? --- Ничем: они состоят из одинаковых атомов. --- Но ведь алмаз твёрдый, а уголь мягкий. --- И что? Из угля можно получить алмаз при некоторых условиях, значит это одно и то же.».

ну дык алмаз и графит — действительно одно и то же. А «судят по свойствам» только неучи, которые не окончили даже 7 классов средней школы.

ИМХО свойства вторичны, их можно поменять, они и меняются. Современные интерпретаторы уже сейчас слишком близки к компиляторам (см JIT например. Или это ещё «интерпретация»? ИМХО — нет).

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

ну дык алмаз и графит — действительно одно и то же.

Чтоб ты всю жизнь резал стёкла графитом. Что до топика: пока не запустишь линукс на си-интерпретаторе - в топик не возвращайся.

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

Чтоб ты всю жизнь резал стёкла графитом.

я режу стёкла стеклорезом.

Что до топика: пока не запустишь линукс на си-интерпретаторе - в топик не возвращайся.

Может ты изучишь матчасть? Linux отлично работает без всяких компиляторов. Вот как раз для работы необходимы интерпретаторы, не сишные конечно, а gawk/sed/sh, и т.п.

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

Ещё один дислектик?

Ядро _сначала_ компилируют и собирают. А потом оно уже работает (на голом процессоре или эмуляторе любой тормознутости - не важно).

Я предлагаю запустить ядро «из сырцов» на интерпретаторе си - может тогда кто-то увидит разницу между этими процессами?

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

Выбор плюса или минуса вопрос соглашения, он никак не связан с тем, что мы считаем временными координатами, а что - пространственными.

пространства нет, есть только время.

man Фотини Маркополу

или см. обучающее видео

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

принцип причинности можно расширить на многомерное время.

Нельзя.

можно. это такой полиморфизм получается, как в ООП. когда Эверетт говорит про «relative state», и их влияние друг на друга в рамках общей системы — это как раз полиморфизм (подсистема в системе).

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

вот представь, например, многомерную машину Тьюринга. те, которые на одной оси — исполнители, на второй перпендикулярной ей оси — супервизоры, (man суперкомпиляция), например, ООП рантайм, квантование процессов в ОС, управляющаяя программа, суперкомпилятор, и т.п.

на третьей оси — метавычислители (тот же суперкомпилятор или метациклический вычислитель). такой паттерн матчинг «символический,„с пониманием смысла“ между »реальным отличием" компилятора от интертрепатора".

например, пусть у машин Тьюринга будет не одна лента, а две: на второй для обратимых вычислений трансфинитными числами записывается EIP машины (например: 1+w != w+1 => w+1,w+2,.. это замыкание w; 1+w — это новое замыкание).

супервизор делает паттерн мэтчинг, который поначалу происходит промежду таких вот трансфинитных кодировок на второй ленте (с учётом данных, т.е. выполняет что-то типа прогонки и построения остаточной программы из суперкомпиляторов).

далее метамета по четвёртой оси, и т.п. пока не откажет воображение.

получается многомерное время: у исполнителей одно (user time), у супервизоров — второе (system time и время на суперкомпиляцию и сворачивание графа в остаточную программу), у метавычислителей — третье, у метамета — четвёртое (условия, при которых имеет смысл второй уровень), и т.п.

принцип причинности в старом смысле, если и работает (потому что их таких может быть несколько, как и полиморфизмов — в разных вселенных из мультивселенной) — работает между супервизором и исполнителем (с точки зрения исполнителя самого по себе суперкомпиляция и сворачивание дерева в остаточную программу выглядит как какая-то black f*cking magic, или копенгагенская интерпретация с коллапсом; но с т.з. универсальной волновой функции, или суперкомпиляции причинность таки есть и не нарушается, в многомерном времени).

квазимото вон в том треде говорил, что денотат нельзя построить за конечное время. но это время конечно — в исполнителе (user time), а в многомерном времени — у нас его сколько угодно (system time; в супервизоре, когда он обнаружит связь между какими-то подходящими исполнителями, параллельно (а не последовательно) их исполняя).

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

или, по другому: Synchronizität, синхроничность

[3] Jung, Synchronizität als ein Prinzip akausaler Zusammenhänge.

Зримым итогом этих плодотворных дискуссий стала совместно изданная учеными в 1952 году книга под названием «Интерпретация Природы и Психе».[2]

В этой работе Юнг впервые развернуто и с привлечением результатов современной физики представляет свою концепцию мироустройства в большой статье «Синхроничность как принцип акаузальных связей»[3]

кстати, вот ещё пруфлинк, для сотрясания основ :))

или, p-адические модели процессов мышления подсознания, из Хренникова. акаузальные вычисления, ага.

«векторный гипертекстовый фидонет», только квантовый, вот это всё :)))

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

можно.

Нельзя.

когда Эверетт говорит про «relative state», и их влияние друг на друга в рамках общей системы — это как раз полиморфизм (подсистема в системе).

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

получается многомерное время:

Нет, не получается. Ты описал обычное классическое одномерное время.

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

И чем это эмулятор процессора, да еще и на интерпретируемом языке, менее интерпретатор чем эмулятор виртуальной машины Python, в которую компилируются питоньи скрипты?

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

Ты и логика из разных вселенных...

yyk ★★★★★
()
Ответ на: комментарий от emulek

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

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

Ай-яй-яй. Ядро ты тоже на интерпритаторе BASH/SH запустишь, который написан сам на себе и сам себя запускать будет? На нижнем уровне всегда будет работать код, который не имеет отношения к интерпретаторам, а скомпилированный, написанный на низкоуровневом языке, типа C, максимум - уровня C++, при том, со вставками ASM-а, если не чистого машинного кода.

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

А что, Форт интерпретатор, написанный на Форте будет интерпретировать сам себя на голом железе? Давай мне такой интерпретатор или не неси чушь, работающий без ОС, не забудь, что сам интерпретатор должен быть по твоему условию не откомпилирован.

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

Ядро ты тоже на интерпритаторе BASH/SH запустишь

прости, но ты идиот. Ядро запускается НЕ на компиляторе. Как и bash/sh. Учи матчасть.

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

зависит от того, насколько много в рантайм тащится информации. в лиспе вроде все есть, и в новой scala-meta хотят все АСТ в рантайме иметь.

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

так компилятор чем от интерпретатора отличается?

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

Это не фундаменальная разница. Да и не всегда это правда. Эмулятор openrisc на javascript на жирном xeon-е работает не медленнее настоящей железки на 50MHz.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.