Re[6]: Так ли хороша математическая нотация?
От: Centaur Россия  
Дата: 04.08.11 15:16
Оценка:
Здравствуйте, denisko, Вы писали:

D>для круга условие x*x+y*y < 1, например или Y < 1 в полярной системе.


В полярной системе координаты, как правило, называются ρ и φ.
Re[13]: Так ли хороша математическая нотация?
От: Undying Россия  
Дата: 04.08.11 15:21
Оценка:
Здравствуйте, Mystic, Вы писали:

M>

Говорят, что классы c1, c2, c3 образуют паттерн стратегия, если
M>(1) классы с2 и с3 наследуются от c1, и при этом перекрывают виртуальный метод a;
M>(2) существует такой класс c4, содержащий метод m, который вызывает метод a у класса c1.


Зачем мне знать, что в уже спроектированном коде есть паттерн стратегия? Польза от этого какая? Мне нужно понять как при решении задачи использовать паттерн стратегия таким образом, чтобы решение получилось проще. И чем здесь может помочь математика?
Re[14]: Так ли хороша математическая нотация?
От: Cyberax Марс  
Дата: 04.08.11 15:26
Оценка:
Здравствуйте, Undying, Вы писали:

U>Зачем мне знать, что в уже спроектированном коде есть паттерн стратегия? Польза от этого какая? Мне нужно понять как при решении задачи использовать паттерн стратегия таким образом, чтобы решение получилось проще. И чем здесь может помочь математика?

Класс, который использует алгоритм (Context), включает абстрактный класс (Strategy), обладающий абстрактным методом, определяющим способ вызова алгоритма. Каждый производный класс реализует один требуемый вариант алгоритма.
Замечание: метод вызова алгоритма не должен быть абстрактным, если требуется реализовать некоторое поведение, принимаемое по умолчанию.

U>Зачем мне знать, что в уже спроектированном коде есть паттерн стратегия? Польза от этого какая? Мне нужно понять как при решении задачи использовать паттерн стратегия таким образом, чтобы решение получилось проще. И чем здесь может помочь математика?


Ты уж определись что тебе надо.
Sapienti sat!
Re[12]: Так ли хороша математическая нотация?
От: Cyberax Марс  
Дата: 04.08.11 15:30
Оценка:
Здравствуйте, Undying, Вы писали:

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

Вообще-то, все паттерны можно формализовать — хотя бы так, как сделано в GoF. Иначе они не имеют смысла.

Хотя, паттерны особо смысла и не имеют, действительно.

C>>Ты просто не понимаешь что тебе говорят, и всё.

U>Это неудивительно, т.к. у меня технический склад ума, а у вас математический. Соответственно для меня математика всего лишь инструмент, а для вас это абсолютно все.
Нет, просто ты не разобрался с тем, что тебя говорят. Вот и всё.
Sapienti sat!
Re[14]: Так ли хороша математическая нотация?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 04.08.11 15:46
Оценка:
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, Mystic, Вы писали:


U>Зачем мне знать, что в уже спроектированном коде есть паттерн стратегия? Польза от этого какая?


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

U>Мне нужно понять как при решении задачи использовать паттерн стратегия таким образом, чтобы решение получилось проще. И чем здесь может помочь математика?


Математика помогает формализовать определения, что исключает непонятки в общении. Задача тоже математическая. Поиск решения тоже математика.
Re: Так ли хороша математическая нотация?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.08.11 16:39
Оценка: +2
Здравствуйте, Chrome, Вы писали:

C>Вопрос в том, стоит ли близость к математической нотации рассматривать как преимущество синтаксиса языка программирования.


Мне кажется стоит зайти издалека.

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

Лично я сто раз встречал случае когда написанная в подчеркнуто математической форме статья просто не поддается прочтению.

Так что я бы оспорил сам постулат о том что сама математическая нотация хороша.

Очень часто мат.запись исползуют чтобы придать работе весомости. В общем, традиции есть традиции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Так ли хороша математическая нотация?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.08.11 17:19
Оценка:
Здравствуйте, Chrome, Вы писали:

C>Вопрос в том, стоит ли близость к математической нотации рассматривать как преимущество синтаксиса языка программирования.


Главное требование к синтаксису языка — легкая читаемость. А она, в свою очередь, сильно зависит от традиций. И так уж сложилось, что подавляющее число программистов лучше всего воспринимают c/паскаль подобный синтаксис. Вот соответствие этому синтаксису, имхо, как раз и можно расценивать как преимущество.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re: Хороша программная нотация!
От: x-code  
Дата: 04.08.11 18:22
Оценка: +1
Здравствуйте, Chrome, Вы писали:

C>Вопрос в том, стоит ли близость к математической нотации рассматривать как преимущество синтаксиса языка программирования.


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

Зато есть такая вещь, как программная нотация. За десятилетия существования программирования она уже вполне сформировалась как отдельное явление. И потому хороши те языки программирования, которые максимально близки именно к программной нотации.
Какие языки наиболее распространены в мире? Правильно, C, C++, Java, C#, ObjectiveC, PHP, JavaScript. Думаю, все вместе они наберут процентов 90 или даже больше. Они используют практически единую нотацию, с точностью до ключевых слов и некоторых нюансов. Программист на любом из перечисленных языков с легкостью и без запинки прочтет код на любом другом.
Именно поэтому хороша традиционная си-подобная нотация. По той же причине, по которой математическая нотация хороша для математиков: она им понятна! Наверняка, если подумать, можно найти в синтаксисе формул кучу неоптимальных вещей. И наверняка можно придумать куда более эффективный способ записи всех математических формул. Но попробуйте перевести на
этот способ математиков
Re[15]: Так ли хороша математическая нотация?
От: Undying Россия  
Дата: 05.08.11 05:51
Оценка:
Здравствуйте, Mystic, Вы писали:

M> Поиск решения тоже математика.


Вот мы разрабатываем пользовательский интерфейс приложения. Где мы здесь используем математику? Вот мы думаем какая структура данных хорошо подходит для решения задачи. Где мы здесь используем математику?

Для того, чтобы найти решение нужно думать. Математика может лишь предоставить ряд приемов, которые в некоторых случаях упрощают процесс мышления, но сам процесс мышления и соответственно поиска решения много сложнее, чем математика.
Re[6]: Так ли хороша математическая нотация?
От: Mamut Швеция http://dmitriid.com
Дата: 05.08.11 06:28
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Mamut, Вы писали:


M>>>>>Математика

M>>>>>circle = [(x, y) | X ∈ R, sin(x) + cos(x) = 1]

DM>>>>

D>>>Ну будет зебра ограниченная кругом, вполне себе ничего.
M>>Ээээ. А это разве не единичный круг я описал?
C>Вообще-то, нет Должно быть: sin(x)^2+cos(x)^2 = 1

Да. Чей-то я торможу.

Заменяем на

circle = [(x, y) | X ∈ R, x^2 + y^2 = 1]

Circle = [{x, y} || X <- R, x^2 + y^2 =:= 1]




dmitriid.comGitHubLinkedIn
Re[14]: Паттерн Стратегия
От: Mamut Швеция http://dmitriid.com
Дата: 05.08.11 06:34
Оценка:
U>>>Паттерн стратегия это еще очень примитивный пример, который имеет достаточно однозначное отражение в коде.
Q>>Нет. Паттерн Стратегия выглядит точно так же (вплоть до UML-диаграммы), как и паттерн Состояние. И тем не менее, это разные паттерны.

U>Т.е. ты подтверждаешь мою точку зрения, что никакого отношения к математики паттерны не имеют, т.к. им невозможно дать строго формализованное определение?


Все паттерны выражают правила и последовательность комбинаций функций.

То есть любой паттерн в итоге сводится к разным вариациям (f o g)(x).

Читать тут: http://norvig.com/design-patterns/ppframe.htm для понимания. Там есть и про стратегию.


dmitriid.comGitHubLinkedIn
Re[11]: Так ли хороша математическая нотация?
От: Undying Россия  
Дата: 05.08.11 07:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

U>>И в каком году это вошло в математический язык?

C>Примерно в 1999-м году, когда впервые появился C#.

Напоминаю о чем пишет топик-стартер:

В текстах имеющих отношение к синтаксису языков программирования нередко встречаются пассажи типа: синтаксис такого то языка похож на математическую нотацию, поэтому этот язык хорош.


Т.е. те кто говорят, что синтаксис языка программирования должен быть похож на математическую нотацию не понимают о чем пишут. Т.к. Cyberax обосновал, что любой язык программирования (в частности C#) является математическим языком и соответственно математической нотацией, а, значит, постановка вопроса озвученная топик-стартером абсурдна. Так кто все-таки прав, те кто отделяют язык программирования от языка математики или Cyberax, который утверждает, что это одно и тоже?
Re[16]: Так ли хороша математическая нотация?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.08.11 08:38
Оценка:
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, Mystic, Вы писали:


U>Вот мы разрабатываем пользовательский интерфейс приложения. Где мы здесь используем математику? Вот мы думаем какая структура данных хорошо подходит для решения задачи. Где мы здесь используем математику?


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


Программирование это раздел математики. Любая программа, любой алгоритм это математический объект с четко очерченными формальными условиями. Поэтому мы просто никуда и не выходили за пределы математики. Структуры данных, языки программирования, алгоритмы, матрица 1024x768 хранящая цвета и представляющся собой экран пользователя это все математические объекты.
Re[17]: Так ли хороша математическая нотация?
От: Кодёнок  
Дата: 05.08.11 09:14
Оценка: 4 (1) +1
Здравствуйте, Mystic, Вы писали:

M>Программирование это раздел математики. Любая программа, любой алгоритм это математический объект с четко очерченными формальными условиями. Поэтому мы просто никуда и не выходили за пределы математики. Структуры данных, языки программирования, алгоритмы, матрица 1024x768 хранящая цвета и представляющся собой экран пользователя это все математические объекты.


А хирургия это раздел кулинарии, так как органы это все съедобные куски мяса?

Классическая философская ошибка “могут быть представлены как математические объекты” vs. “являются математическими объектами”.
Re[18]: Так ли хороша математическая нотация?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.08.11 09:43
Оценка: :)
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Mystic, Вы писали:


M>>Программирование это раздел математики. Любая программа, любой алгоритм это математический объект с четко очерченными формальными условиями. Поэтому мы просто никуда и не выходили за пределы математики. Структуры данных, языки программирования, алгоритмы, матрица 1024x768 хранящая цвета и представляющся собой экран пользователя это все математические объекты.


Кё>А хирургия это раздел кулинарии, так как органы это все съедобные куски мяса?


Да, но манипуляции то над объектами тут совершенно разные. Цели разные.

Кё>Классическая философская ошибка “могут быть представлены как математические объекты” vs. “являются математическими объектами”.


Всегла соглашался с Ландау, что философия это противоестественная наука, здесь этому подтверждения. Но, к слову, я не писал "могут быть". Я писал являются. И все программирование это раздел математики.

Вообще, что есть математика? По сути это совокупность аксиом и правил вывода. Правила вывода одинаковы во всей математике и в программировании. С некоторой оговоркой касательно интуиционисткой математики. Аксиомы, описывающие языки программирования, определяются в стандартах. Все, получили математическую теорию. Точка. Так что структуры данных это математические объекты без всяких "может быть". И мы оперируем с ними как с математическими объектами.
Re: Нотация как набор исторических курьёзов
От: Qbit86 Кипр
Дата: 05.08.11 10:05
Оценка:
Здравствуйте, Chrome, Вы писали:

C>Так ли хороша математическая нотация?


Вот пример происхождения нотации для λ-исчисления:

«Сам значок «λ» используется для одной из двух основных конструкций в созданной Черчем системе абстракции. Оказывается, что выбор обозначения абстракции не был совершенно случайным, а сделан в противопоставление другой более ранней конструкции, которую использовали Whitehead и Russell и обозначали как «». Для новой конструкции, чтобы отличать ее от прежней, Черч сначала заменил обозначение сначала на «∧x», а затем  на «λx», очевидно, интерпретировав первый символ как заглавную букву «Λ», для упрощения набора.»

В то же время в математике есть альтернативная нотация (не так хорошо отражает «квантороподобные» свойства абстракции, зато более наглядная): x ↦ expr(x).

Это к слову о том, что часто математическую нотацию считают по-умолчанию более предпочтительной, «умной» и правильной, даже если её происхождение — хаотичный и бестолковый набор случайностей.
Глаза у меня добрые, но рубашка — смирительная!
Re[12]: Так ли хороша математическая нотация?
От: Кодёнок  
Дата: 05.08.11 10:06
Оценка: 90 (1) +1
Здравствуйте, Undying, Вы писали:

U>Т.к. Cyberax обосновал, что любой язык программирования (в частности C#) является математическим языком и соответственно математической нотацией, а, значит, постановка вопроса озвученная топик-стартером абсурдна. Так кто все-таки прав, те кто отделяют язык программирования от языка математики или Cyberax, который утверждает, что это одно и тоже?


Курица и петух для нас не одно и то же — потому что на практике важно отличать, кто будет нести яйца, а кто нет. Они даже названы разными словами. Фазан самец и фазан самка — это одно и то же для нас, потому что на практике не важно, какого пола тушку ты подстрелил. Поэтому для них нет разных слов. Хотя фазан — это та же самая курица.

Cyberax и про куриц с петухами легко может обосновать, что это одно и то же. Но лично для меня различия между математической нотацией и языками программирования важны, поэтому — для меня не одно и то же.
Re[19]: Так ли хороша математическая нотация?
От: Undying Россия  
Дата: 05.08.11 10:24
Оценка:
Здравствуйте, Mystic, Вы писали:

M> Аксиомы, описывающие языки программирования, определяются в стандартах. Все, получили математическую теорию. Точка. Так что структуры данных это математические объекты без всяких "может быть". И мы оперируем с ними как с математическими объектами.


Т.е. те кто говорят, что синтаксис языка программирования должен быть похож на математическую нотацию не понимают о чем говорят? Т.к. любой азык программирования является математической нотацией и соответственно вопрос похожести синтаксиса языка программирования на математическую нотацию является абсурдным?
Re[2]: Нотация как набор исторических курьёзов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 05.08.11 10:39
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>Вот пример происхождения нотации для λ-исчисления:

Q>

«Сам значок «λ» используется для одной из двух основных конструкций в созданной Черчем системе абстракции. Оказывается, что выбор обозначения абстракции не был совершенно случайным, а сделан в противопоставление другой более ранней конструкции, которую использовали Whitehead и Russell и обозначали как «». Для новой конструкции, чтобы отличать ее от прежней, Черч сначала заменил обозначение сначала на «∧x», а затем  на «λx», очевидно, интерпретировав первый символ как заглавную букву «Λ», для упрощения набора.»

Q>В то же время в математике есть альтернативная нотация (не так хорошо отражает «квантороподобные» свойства абстракции, зато более наглядная): x ↦ expr(x).

еще версия

Выбор символа λ является произвольным, и не несет никакой смысловой нагрузки. (Можно часто видеть, особенно во французских текстах, альтернативную нотацию [x] t[x].) Вероятно, что она возникла во время сложного процесса эволюции. В начале, в известной книге Principia Mathematica (Whitehead and Russell 1910) использовалась ‘hat’-нотация t[^ x] для функции от x производящей t[x]. Чёрч (Church) изменил его на ^x. t[x] (крышка над x), но поскольку наборщики текстов не могли поместить значок ‘hat’ (крыша) над x, то оно появилось как Λx. t[x], которое затем трансформировалось в λx: t[x] в руках других наборщиков.

Введение в функциональное программирование
John Harrison
jrh@cl.cam.ac.uk
3rd December 1997

Q>Это к слову о том, что часто математическую нотацию считают по-умолчанию более предпочтительной, «умной» и правильной, даже если её происхождение — хаотичный и бестолковый набор случайностей.

Re[20]: Так ли хороша математическая нотация?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.08.11 11:07
Оценка: 19 (2)
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, Mystic, Вы писали:


M>> Аксиомы, описывающие языки программирования, определяются в стандартах. Все, получили математическую теорию. Точка. Так что структуры данных это математические объекты без всяких "может быть". И мы оперируем с ними как с математическими объектами.


U>Т.е. те кто говорят, что синтаксис языка программирования должен быть похож на математическую нотацию не понимают о чем говорят? Т.к. любой азык программирования является математической нотацией и соответственно вопрос похожести синтаксиса языка программирования на математическую нотацию является абсурдным?


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

Математическая нотация строится по ходу изложения. Например, будет обозначать элемент на пересечении i-й строки и j-го столбца матрицы A как . Отрицание высказывания P будет обозначать . Кстати, в каком языке программирования есть такие средства выражения? Но что нам мешает сделать другие определения? Например, пусть элемент на пересечении i-й строки и j-го столбца матрицы A будет обозначаться A[i][j]. Отрицание высказывания P будет !P. Или not P. Что это принципиально меняет? Смотри список используемых обозначений и наслаждайся.

Но, означает ли фраза, что "синтаксис языка программирования похож на математическую нотацию" бессмысленна? Как ни странно, нет. Есть такое понятие, как "энтимема". Это о чем не говорится, но подразумевается. И что легко восстанавливается из контекста. Энтимемы очень широко используются в математиеской литературе, позволяя избегать огромного количества повторений. Бессмысленно такую фразу выдирать из контекста, не делая дополнительных оговорок. Например:

Синтаксис языка программирования Хаскель похож на математическую нотацию.
Например список можно описать так:
[ x | x <- xs, x > m, x < n ]


Легко восстановить до полной формы:

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

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.