![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 |
1) "мы не говорим о тех задачах, которые сегодня решить нельзя из-за ограничений по времени или из-за возможностей CPU" Таких задач вообще нет, согласно тезису Черча, а раз их и нет, то мы о них и не говорим. Тут я с вами соглашусь на 100. Зачем обсуждать пустое множество. 2) Верно, также как и на любом другом языке эквивалентном машине тьюринга, решаются все задачи. 3) Нет задач, которые ПОКА не могут быть решены. Есть задачи вычислимые на машине тьюринга, а есть невычислимые задачи. Причем невычислимые задачи невычислимы НИКОГДА, при условии, что математика не содержит противоречия. 4) Человеческий язык неоднозначен. А спорить с высказыванием не допускающим однозначную формулировку бесполезно. Такое высказывание пусто и бессмыслено. Поэтому если человек хочет быть понятым, он должен говорить как можно более однозначно. А если желании понять собеседника, интерппритируется как придирки, то это можно ликвидировать, например изучением логики. 5) Может быть имеется в виду, ВСЕ программы, которые можно написать. Но, для этого нужно знать какием имеено программы можно написать. Напоследнок пример программы которую НИКОГДА нельзя написать, прн условии что математика непротиворечива Нельзя написать программу "А" которая получает на вход листинг другой программы "Б". "А" возвращает 1 если в процессе работы "Б" будет напечатана фраза "ПРивет мир" иначе "А" вернет 0. "Б" любая программа написаная на допутимом языке. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ |
посчитать факториал от количества атомов во вселенной (если представить это число сколь угодно большой константой) задача есть, но сегодня она по времени и ресурсам любого компьютера не разрешима
посмотри мой пример еще раз прошу, обрати внимание на практическую сторону теории смысла от того, что задача вычислима в теории, но на практике решить ее мы не можем, очень мало во-первых, спасибо за заботу и совет, но логику я изучал (причем как обычную, так и математическую) во-вторых, есть такое понтятие как контекст высказывания/суждения и т. д. Используя его, мы можем определить недостающие детали того же высказывания/суждения, если мы будет пренебрегать контекстом и говорить во всех случаях так, чтобы не было необходимости додумывать сказанное, то это будет, мягко сказано, не очень красиво и не по-человечески. Мы же не хотим стать машинами, действующими прямолинейно в лоб?
я даже доказательство знаю ![]() но в вашей формулировке она решается ![]() 1. запускаем программу (А), на вход она получает (или в виде дескриптора файла с листингом, или указатель на массив, который содержит код программы, или еще как) исходный код другой программы (В) 2. запускаем в программе А в виде отдельного процесса компилятор (допустим GCC), который преобразует исходный код программы В в код машинный, сохраняем полученный код (допустим в файл F) 3. из программы А запускаем код, записанный в файле F (допустим создадим еще один процесс) 3. т. к в результате работы программы В где-то должна появиться (или не появиться) нужная фраза, а количество этих мест конечно (если брать реальный компьютер), можно сделать вывод о том, что просмотром содержимого всех этих мест, можно получить ответ на исходный вопрос (как частный случай, перенаправляем все потоки (входной, выходной, ошибок) процесса, в котором запускаем файл F, на известный программе А файл и после отработки программы В, сканируем его в поисках нужной фразы) ![]() ![]() выша проблема, esperant0, имхо, в том, что вы кроме абстрактной теории не хотите ничего замечать вокруг ![]() Это сообщение отредактировал(а) MAKCim - 7.4.2007, 13:14 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
Inferno_2000 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 3.4.2007 |
Интересно, а зачем нужен C#
![]() |
|||
|
||||
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 |
1) Алгоритм считающий факториал известен и корректен. И задача вычисления факториала от любого числа разрешима и решаема. А будет работать программа год или 10 лет не принципиально, с точки зрения разрешимости. Вывод: вы привели пример задачи разрешимой на машине тьюринга. 2) Задача разрешая в теории разрешима всегда на практике, вопрос времени, может быть существенен. Но главное что задача решаема на практике, а время решения проблемы уменьшится с развитием вычислительной технике. Задачи нерешаемые, никогда не будут решаемые. А задачи решаемые решаемы сегодня, были решаемы 30 лет назад и остануться решаемы. 3) Ваше решение некорректо. Как мы знаем алгоритм эта последовательность действий которая всегда завершается. Ваш алгоритм может не завершится никогда. А потому мы не примем его как корректный. Конечно если предположить, что все программы "Б" ограничены размером х, то ваше решение можно будет преобразовать до корректного. Но в моей постановке программма "Б" может быть любого конечного размера. офтопик: в жизни я использую и теорию и практику -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
MAKCim |
|
||||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ |
ну и? я не понял, почему решение некорректно
он может выполняться сколь угодно долго (по крайней мере настолько долго, сколько выполняется программа Б) не вы ли писали
![]()
постойте, давайте вернемся к тому, с чего все началось я вначале написал
вы ответили т. е насколько я понял, вы утверждаете, что задач, которые сегодня решить нельзя из-за ограничений по времени или из-за возможностей CPU, нет я привел такую задачу Теперь вы говорите о разрешимости, хотя изначально вопрос был не в этом ![]() как-то непоследовательно получается Это сообщение отредактировал(а) MAKCim - 7.4.2007, 18:07 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||||
|
|||||||||||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 |
Кстати, история ООП начинается с 60-ых годов. Так что "новинке" уже подчти 50 лет.
UML - около 12 лет. |
|||
|
||||
AndreyK |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2007 |
Я имел ввиду технологию COM. Интефейсы впервые были созданы как основа работы Windows и только потом их включили в языки программирования (JAVA, C#...). И они очень сильно изменили создание программ, создав целый класс Visual-языков. До этого были просто Pascal, BC++ и т.д. Глядя на этот успех и появились всякие UML и др.
Не знаю что такое BrainFuck. 3-5GL - имеет какое-то отношение к OpenGL ? Если нет, то тоже не знаю, что это такое...
А там вопросительный знак стоит. Вы что не уловили в моём голосе иронии?
Я не говорил, что это новинка, я говорил, что она не облегчает и не ускоряет написание программ. Предвижу новые возражения...поэтому сразу отвечу: ООП и интерфейсы не одно и то-же. Не даром в ООП отказались от множественного наследования и снабдили все объекты интерфейсами. Объекты могли-бы ускорить программирование, если бы у нас было свободное распространение исходных кодов... А вот интерфейс - это доступ к объекту с неизвестным кодом , но заданными свойствами, их можно спокойно тиражировать, не опасаясь нарушения авторских прав (что и произошло). |
||||||||||
|
|||||||||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich |
1 ... 5th generation language — язык программирования 1 ... 5-го поколения. Смотри здесь. И Brainfuck. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
En_t_end |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 |
Я вообще что-то запутался. Давайте называть вещи своими именами. Я предпочитаю non-platform терминологию. Windows - хоть и распротраненная платформа, но никто не дает право её создателям поправлять незыблемую терминологию информатики, как науки и её областей. И вам соответственно. Интерфейс - это сокет, розетка, проще говоря. Ничего более. Опять же, толи это опять ваш оксюморон, но в языки программирования включать технологии конкретной платформы - глупость. Возможно лишь расширять библиотеки. На какой успех глядели создатели UML ? И почему это вдруг он должен был сподвигнуть их на что-то ? Вы вообще понимаете, что есть UML ![]() И самое главное - COM - вообще не имеет никакого отношения к фундаментальной информатике, как науке о информации, о способе её хранения и обработке а также к фундаментальному программированию. ООП же имеет непосредственное отношение. На данный момент, по-моему точно, ООП, как впрочем и методология модульного программирования, входят в класс фундаментальных знаний. Проще говоря, исходя из фундаментальности ООП можно с уверенностью утверждать, что любая архитектура информационной системы, построенная на отношении: объект:интерфейс-реализация+связь объектов. Есть не более чем архитектура векторно разложенная по "базису" данном случае ООП, либо есть архитектура распространяющая ООП в пространство более широкое нежели существующее. На мой взгляд, COM вообще искажает пространство. Повторяю, если говорить абстрактно! Так что не нужно изобретать велосипед. Так или иначе COM связанно с ООП. Вопрос в другом насколько корректна связь. Добавлено @ 18:55 Курим краткое описание UML: http://ru.wikipedia.org/wiki/UML Это сообщение отредактировал(а) En_t_end - 10.4.2007, 18:56 |
||||
|
|||||
AndreyK |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2007 |
Это не ко мне, а к разработчикам JAVA и С#.
На появление Visual-технологии
Хотели, появления нового поколения языков (личные мотивы создателей я не знаю, может жажда славы или денег...).
Тем хуже для фундаментальной информатики... |
||||||||
|
|||||||||
En_t_end |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 |
AndreyK,
Вот уж точно оксюморон. Система, созданная, как независимая от платформ опирается на сомнительный COM. Что-то мне кажется, не то говорите вы. Никаким образом. Вы прочитали хотя бы из вики историю создания UML и предназначение ?
Видимо, вы продолжаете игнорировать ссылки, ну что ж придется цитировать вики:
Я не знаю, какой такой травы надо курить, чтобы после "успеха" описанной COM создать UML. UML - прежде всего язык графического обозначения архитектур ОО-систем, а COM - технология построенная на некоторых базовых принципах ООП. Не было бы COM UML бы всё равно появилась(оочень много народу, к примеру, работают на других платформах, где ООП также поддерживается и COM нет). К примеру, в "чистых" C++ можно программировать в ОО-стиле. И систему можно кроссплатформенную собрать. Причем не прибегая к COM. А UML всё равно использовать, как визуализатор архитектуры своего приложения. Добавлено через 14 минут и 52 секунды Из скудной информации: http://javagu.ru/portal/dt?last=false&...U_SECTION_80693 Очевидно, что единственная связь JAVA и COM - это JNI - т.е связь абсолютно такая же как и с другими технологиями и языками с JAVA. |
||||||
|
|||||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 |
Не думаю. Ы хотя майкрософт и создавала COM, как технологию независимую,но... Всё таки любая наука основана на некоторой базе, которая не должна быть избыточна(так же как и любая аксиоматически построенная система). В данном случае, очевидно, что добавление COM к классу фундаментальных знаний было бы избыточным. |
|||
|
||||
AndreyK |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2007 |
Видимо я всё же непонятно изъясняюсь (увы не писатель).
Постараюсь ещё раз: COM - вовсе не сомнительный... Так бывает - практики изобрели то, до чего не додумались теоретики (хотя идею, наверное, взяли из конструкции персонального компьютера). Теперь любой программист (и не обязательно) получил возможность собирая элементы (как из конструктора) писать программы, даже (почти) не используя коды... Успех COM - это значительное ускорение разработки, сокращение усилий и т.д. То-же задумали и разработчики UML - создать такой язык, где и алгоритмы (а не только внешний вид) можно было бы описывать не прибегая к кодированию. Налицо попытка повторить успехи Visual-технологии... Вот эту мысль я и имел ввиду. Я вовсе не имел ввиду, что COM и UML как-то связаны... Почитайте откровения разработчиков UML - они там так и говорят - хотели ещё больше всё унифицировать и облегчить... Я не понимаю в чём вы не согласны? -Что никакого упеха COM не было? -Что UML не для этого создавался? -Что интерфейсы к COM не имеют отношения? PS Насчёт JAVA - её разработчики не написали бы ничего подобного, если бы перед глазами не имели COM. В результате, они отказались от множественного наследования и ввели интерфейсы как часть синтаксиса языка. JAVA - это как раз и есть первая попытка отразить успехи практиков (программистов Microsoft) в языке (сделать идею интерфейсов кросплатформенной). Это сообщение отредактировал(а) AndreyK - 11.4.2007, 14:28 |
|||
|
||||
En_t_end |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 |
Сомнительно. Есть документальные подтверждения ? И ведь вправду по дате 1993 - COM 1995 - Java сходится. Но что-то всё равно не верится, в то что Гослинг посматривал на COM. ![]() И вообще, насколько мне известно, у создателей Java были несколько инные цели. А от множественного наследования отказались совершенно по другой причине. Всем известно, что использование множественного наследования может привести к коллизиям. Просто создатели Java взвесили все плюсы и минусы.
-Успех COM был локального масштаба. Делать из COM величайшее "изобретение" не стоит. -врядли основной целью было описывать COM-архитектуры ![]() UML - унифицированный язык. -Как-то кощунственно использовать термин "интерфейс" вне определенного контекста. Ну а так конечно имеют. Ну а вообщем теперь я вас понял. Добавлено через 12 минут и 40 секунд Вот кстати http://ru.wikipedia.org/wiki/Java Довольно достоверный источник. Никакого упоминания о COM. Видно, что Java переняла практически все прелести реализации ООП из C++, Гослинг избавился от множественного наследования, да типизацию сделал строгую. Это сообщение отредактировал(а) En_t_end - 11.4.2007, 18:33 |
||||
|
|||||
![]() ![]() ![]() |
Правила раздела «Флейм» | |
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Флейм | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |