185 похожих чатов

Получается, от реализации языка зависит, будет ли он тьюринг-полным? Разве

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

22 ответов

34 просмотра

ну, кажется, ограничение в виде максимального размера ArrayDeque это скорее деталь реализации, а не неполнота самого языка

Зависит не от реализации, а от спецификации языка. Если в спецификации Brainfuck никаких ограничений на размер памяти не указано — у него бесконечная память и он полон по Тьюрингу.

Alexander Chichigin
Зависит не от реализации, а от спецификации языка....

Тогда язык запросто может быть полным по Тьюрингу в теории и неполным - на практике?

А что, какой-то язык может быть полным по Тьюрингу "на практике"? Где-то есть бесконечная память? 😂

Раскопки Майтрейи Коц
Тогда язык запросто может быть полным по Тьюрингу ...

Разумеется. Конкретная реализация любого языка, к которой в принципе невозможно добавлять память (в виде дополнительных ячеек RAM, или ленты, или дисков и т.п.), теоретически не только не полна по Тьюрингу, а вообще эквивалентна... см. мой вопрос https://t.me/CompilerDev/121627 ;)

Alexander Chichigin
А что, какой-то язык может быть полным по Тьюрингу...

Например, в Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D. (2013). "Introduction to Automata Theory, Languages, and Computation" это излагается немного не так: ————— If we examine a program such as Fig 8.2, we might ask whether it really searches for counterexamples to Fermat's last theorem. After all, integers are only 32 bits long in the typical computer, and if the smallest counterexample involved integers in the billions, there would be an overflow error before the solution was found. In fact, one could argue that a computer with 128 megabytes of main memory and a 30 gigabyte disk, has "only" 256³⁰¹²⁸⁰⁰⁰⁰⁰⁰ states, and is thus a finite automaton. However, treating computers as finite automata (or treating brains as finite automata, which is where the FA idea originated), is unproductive. The number of states involved is so large, and the limits so unclear, that you don't draw any useful conclusions. In fact, there is every reason to believe that, if we wanted to, we could expand the set of states of a computer arbitrarily. For instance, we can represent integers as linked lists of digits, of arbitrary length. If we run out of memory, the program can print a request for a human to dismount its disk, store it, and replace it by an empty disk. As time goes on, the computer could print requests to swap among as many disks as the computer needs. This program would be far more complex than that of Fig. 8.2, but not beyond our capabilities to write. Similar tricks would allow any other program to avoid finite limitations on the size of memory or on the size of integers or other data items. ————— Т.е. неограниченность решает, как я понимаю (ну и практическая полезность абстракции, см. второй параграф).

Yaroslav Schekin
Например, в Hopcroft, John E.; Motwani, Rajeev; Ul...

Да. С этим, вроде, никто и не спорит.

Alexander Chichigin
А что, какой-то язык может быть полным по Тьюрингу...

Ну, да - если каким-то белком читать очень длинную ДНК, то мы ограничены массой образования сверхновой 😁

Лимон Цитрусовый
Ну, да - если каким-то белком читать очень длинную...

Почему сверхновой? Как только массы хватит для образования любой звезды — оно начнёт светить вместо того чтобы транскрибировать... 🤷‍♀️

Алексей
То есть это не тьюринг полнота

Полнота, полнота — потому что звезда является компилятором же. 🤣

Alexander Chichigin
Полнота, полнота — потому что звезда является комп...

Даже если является всё равно не полнота. Тьюринг полнота говорит что лента должна быть бесконечной. А звезда очень даже конечна.

А вот некоторые авторы считают, что нет, см. цитату https://t.me/CompilerDev/121653 Неограниченные ресурсы — не то же самое, что бесконечные. Кстати, конечность Вселенной уже кто-то доказал? ;)

Yaroslav Schekin
А вот некоторые авторы считают, что нет, см. цитат...

А что, кто-то доказал её неограниченность? 😏

Alexander Chichigin
А что, кто-то доказал её неограниченность? 😏

Тоже нет. Так что на вопрос физической возможности настоящей МТ нет однозначного ответа, я так понимаю. ;)

Yaroslav Schekin
Тоже нет. Так что на вопрос физической возможности...

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

Yaroslav Schekin
А вот некоторые авторы считают, что нет, см. цитат...

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

Алексей
Ну это я на самом деле говорил про буквальное опре...

Сегодня ограничены, завтра — менее ограничены (и так далее). Никто не говорил, что МТ должна работать непрерывно, или выполнять шаги с какой-то заданной скоростью и т.п. ;)

Алексей
Ну это я на самом деле говорил про буквальное опре...

Тут возникает разница между программой/алгоритмом и её конкретным выполнением, спецификацией и конкретной реализацией. Если в программе/спецификации не задано никаких ограничений по ресурсам — она неограничена, и нам ничего не остаётся как рассматривать/анализировать её как таковую — эквивалентную некоторой абстрактной машине Тьюринга. То, что конкретная реализация ограничена в ресурсах и является аппроксимацией к спецификации — отдельный вопрос, и мы можем анализировать границы применимости и строить иерархию аппроксимаций, и всякое такое прочее.

Ну это у вас [биологический] вид, да и Вселенная какие-то... некачественные ("большой разрыв" там какой-то и т.п., обожемой) — станьте получше и найдите себе уже Вселенную поприличнее, и наша MT™ будет прекрасно работать для вас! ;) Кроме шуток — https://t.me/CompilerDev/121669 , да.

В следующем году статье Саттера будет 20 лет. А народ ещё массово «пускает поезда под откос». https://www.cs.utexas.edu/~lin/cs380p/Free_Lunch.pdf

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта