2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Программирование и математика.
Сообщение19.04.2014, 15:32 
Аватара пользователя


22/09/09

1907
arseniiv в сообщении #851680 писал(а):
И программой для какой же умозрительной машины является таблица умножения? Давайте, опишите. Вот вам заодно и конкретная таблица:$$\begin{array}{cccc} 1 & 2 & 3 & 4 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 9 & 12 \\ 4 & 8 & 12 & 16 \end{array}$$Опишите же, что делает инструкция «6»? Или эту программу надо читать непоэлементно, а по-другому?

Придумать можно ;-) Формат:
Код:
<метка><операция><адрес операнд 1><адрес операнд 2 и результат>
Код сложения - 2, вычитания - 4, умножения -6, деления -8. Нпр.,3я строка с меткой 3: умножить содержимое регистра 9 на содержимое регистра 12 и записать в регистр 12. :D

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 15:52 
Заслуженный участник


27/04/09
28128
Придумать и я могу. Но набор команд и устройство машины, при которых эта «программа» будет работать как таблица умножения, пусть описывает Skeptic. (Не выдавать таблицу умножения в каком-то виде а именно умножать числа, пользуясь ей. Выдавать таблицу, конечно, такая «программа» могла бы, но Skeptic говорил явно
Skeptic в сообщении #850453 писал(а):
Если растянуть понятие "программирование" до необозримых пределов, то таблица умножения - программа, а человек, её написавший, - программист.
не о такой банальности как '((1 2 3) (2 4 6) (3 6 9)).)

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 16:04 
Заслуженный участник


28/04/09
1933
Зачем какие-то коды? Таблица умножения позволяет, зная номера строки и столбца, получить произведение соответствующих чисел. На примитивнейшую программу тянет.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 16:52 
Заслуженный участник


27/04/09
28128
В таблице умножения не сказано, как с её помощью умножать. Тогда и таблица логарифмов — программа…

-- Сб апр 19, 2014 19:53:40 --

Даже не менее трёх — вычисления логарифма, экспоненты и произведения.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 17:05 
Заслуженный участник
Аватара пользователя


18/01/13
12044
Казань
Люди, вас куда-то занесло. От основного вопроса ушли в мелочевку.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 17:08 
Заслуженный участник


28/04/09
1933
arseniiv в сообщении #851775 писал(а):
Тогда и таблица логарифмов — программа…
Разумеется. Точнее, не программа, а программно-аппаратное устройство, с помощью которого можно производить
arseniiv в сообщении #851775 писал(а):
вычисления логарифма, экспоненты и произведения.
arseniiv в сообщении #851775 писал(а):
В таблице умножения не сказано, как с её помощью умножать.
Справочной системой эта программа не оснащена, это верно. Вероятно, авторами программы (Пифагор и Ко) подразумевалось, что умение пользоваться таблицами у пользователя программы должно быть уже сформировано.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 19:20 
Заслуженный участник


27/04/09
28128
В общем, можно проводить границу между программами и не-программами по-всякому (например, что угодно считать программой вычисления чего угодно на соответствующей машине), и я руководствуюсь тут практическим интересом (так показалось). Но для окончания хочу сказать, что сейчас для меня таблица умножения насчёт программ вещь такого же вида как таблица логарифмов, так что если таблица логарифмов — программно-аппаратный комплекс, то таблица умножения — тоже. :-)

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 22:10 
Аватара пользователя


22/09/09

1907
Можно воспользоваться формулой Вирта: алгоритмы + структуры данных = программы. Строго говоря, структуры данных типа таблиц - не программы. Однако в общем случае нет признака, с помощью которого можно было бы отличить программу от данных. Пусть у CPU 256 инструкций, т.е. любое значение любого байта может быть воспринято как инструкция. Тогда любую случайную последовательность байтов можно интерпретировать и как программу, и как данные. Убедиться не сложно: возьмите картинку и замените расширение .jpg на .exe, попробуйте запустить на исполнение - ОС на компе добросовестно попытается выполнить, но сразу наткнется на нарушения в заголовке программы и будет ругаться. Однако мы же и не говорим, что любая программа должна быть корректной.

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

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

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение19.04.2014, 23:57 
Заслуженный участник
Аватара пользователя


30/01/06
72407
bin
Предлагаете разработать процессор с такой системой команд, чтобы начало таблицы умножения воспринималось им как программа, пользующаяся этой самой таблицей умножения? :-)

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 01:04 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Pineapple в сообщении #850265 писал(а):
Как тесно программирование связано с другими науками? Если бы не существовало программирования, то как бы это отразилось на науке?

Вопрос, на самом деле, интересный.

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

Но на практическом уровне, программирование дало другим наукам инструмент, мощность которого трудно себе представить. Не только чисто компьютерные расчёты, моделирование, хранение и обработка информации, но все цифровые технологии позволяют то, что казалось невозможным раньше. Спутники измеряют движение континентов. Автоматические видеокамеры снимают животных в естественной обстановке. Химические процессы могут контролироваться с точностью до миллисекунд. И так далее, и тому подобное - перечисление бесконечно. Так что, не будь программирования, сидели бы мы сейчас в 19 веке (ну, в первой половине 20-го).

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 02:00 
Аватара пользователя


22/09/09

1907
Munin в сообщении #851992 писал(а):
bin
Предлагаете разработать процессор с такой системой команд, чтобы начало таблицы умножения воспринималось им как программа, пользующаяся этой самой таблицей умножения? :-)
А почему бы и нет? :D (Реально разрабатывать, конечно же, не нужно, но умозрительно - можно. В чем-то это напоминает классическую задачу: написать программу, которая при выполнении печатает собственный исходный код.)

-- Вс апр 20, 2014 02:16:27 --

Munin в сообщении #852012 писал(а):
Вопрос, на самом деле, интересный.

Чисто теоретически - никак не связано. Программирование - отдельная область, и другие науки с ним не связаны.
По сути именно так. Но добавлю, что кроме классических наук есть еще относительно новая - computer sci. Программирование относится к ней: можем видеть по структуре нашего форума dxdy :-) Структура форума себя оправдывает...
Munin в сообщении #852012 писал(а):
Но на практическом уровне, программирование дало другим наукам инструмент, мощность которого трудно себе представить.
Ну а с этим невозможно не согласиться полностью и безоговорочно! :-)

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 08:55 


01/12/11

1047
bin в сообщении #851941 писал(а):
С точки зрения системного программирования факт, что любой файл можно рассматривать и как программу, и как данные очень важен: и программы, и данные мы копируем, удаляем, сравниваем с помощью одних и тех же утилит. Мы так к этому привыкли, что не задумываемся о столь значительном достижении, сделанном в ходе развития компьютинга :-)

Это не совсем так. Возможность рассматривать набор чисел как данные и как команды заложена в структуре ЭВМ - это данность, не зависящая от метода программирования.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 10:23 
Аватара пользователя


22/09/09

1907
Skeptic в сообщении #852066 писал(а):
Это не совсем так. Возможность рассматривать набор чисел как данные и как команды заложена в структуре ЭВМ - это данность, не зависящая от метода программирования.
Эта "данность", не зависящая от метода программирования, зависит от платформы. Нпр., если число инструкций CPU меньше 256, то значение байта может не соответствовать никакой инструкции. В некоторых ОС было строгое разделение на данные и исполняемый код:
Цитата:
The resource fork is a construct of the (classic) Mac OS operating system used to store structured data in a file, alongside unstructured data stored within the data fork. A resource fork stores information in a specific form, containing details such as icon bitmaps, the shapes of windows, definitions of menus and their contents, and application code (machine code). [...]Classic 68k applications are one example, where even the executable code is contained in resources of type 'CODE'. (http://en.wikipedia.org/wiki/Resource_fork)

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 14:31 


01/12/11

1047
Речь идёт о принципиальных отличиях структуры ЭВМ от предшественника - табулятора. Программы для табулятора - это съёмная коробка (плата) 50 х 50 см, опутанная проводами. Использование общей оперативной памяти для цифровых значений позволило использовать их как программу или как данные, и обеспечило революционных скачок применения ЭВМ.

В примере с Mac OS речь идёт о файлах - данных хранящихся вне ЭВМ на внешних носителях. Это никак не связано с оперативной памятью ЭВМ.

К слову, в OS/360 по имени файла нельзя было определить его предназначение. Оно зависело от способа обращения к нему из задания на выполнение программы.

 Профиль  
                  
 
 Re: Программирование и математика.
Сообщение20.04.2014, 14:36 
Заслуженный участник


27/04/09
28128
Skeptic в сообщении #852137 писал(а):
К слову, в OS/360 по имени файла нельзя было определить его предназначение. Оно зависело от способа обращения из программы.
К слову, и в современных ОС такого навалом. Могут быть файлы без расширения, могут быть файлы с расширением, которое, однако, никак не предупреждает никаких действий программ и не обязательно определяет формат файла.

Skeptic в сообщении #852137 писал(а):
Использование общей оперативной памяти для цифровых значений позволило использовать их как программу или как данные, и обеспечило революционных скачок применения ЭВМ.
На практике одну и ту же последовательность слов одновременно и как программу, и как данные рассматривать приходится очень редко.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 95 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group