2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Первый язык программирования.
Сообщение06.08.2010, 20:20 
Заслуженный участник


09/08/09
3438
С.Петербург
logout2d в сообщении #342785 писал(а):
Думаете язык программирования появился с появлением компьютеров?
Языки описания алгоритмов появились за сотни лет до появления электроники!
Алгоритмические языки и языки программирования -- это не совсем одно и то же. Вполне может существовать алгоритмический язык, для которого не существует ни одного транслятора.

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение06.08.2010, 20:28 
Аватара пользователя


14/05/05
224
Баку
logout2d в сообщении #342984 писал(а):
Ну вот я к этому и говорю, что потребность фиксировать алгоритм на носителе появилась задолго до компьютеров!

Никто этого и не отрицает. Речь здесь идет не о языке описания действий, а о языке программирования (определение довольно распространенное в информатике).
logout2d в сообщении #342984 писал(а):
Ну а чем не алгоритм?Да и например древняя рукопись о возделывании земли, алгоритм? По моему да!

Не всегда. Не забывайте, что алгоритм - "это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность" (Д. Э. Кнут). Так что не факт, что Ваша рукопись будет обладать всеми пятью чертами.

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение21.08.2010, 18:11 


21/03/06
1545
Москва
Цитата:
Не забывайте, что алгоритм - "это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность" (Д. Э. Кнут). Так что не факт, что Ваша рукопись будет обладать всеми пятью чертами.

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

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение21.08.2010, 20:43 
Аватара пользователя


14/05/05
224
Баку
e2e4 в сообщении #346022 писал(а):
Кнута не читал, но определение алгоритма весьма и весьма спорное. Из пяти перечисленных я бы оставил только вывод и определенность. Уж точно ввод, эффективность не есть признаки алгоритма, а конечность - это как договориться.

Как Вы собираетесь получить вывод, если у Вас нет ввода?
Как Вы собираетесь получить результат, если не выполняется эффективность и конечность?

Дело в том, что без этих выводов под понятие алгоритм попадает все что угодно, скажем беспорядочный набор мартышками романа "Война и мир" (а чем не алгоритм, а?).

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


09/08/09
3438
С.Петербург
Ринат в сообщении #346069 писал(а):
Как Вы собираетесь получить вывод, если у Вас нет ввода?
На мой взгляд, и ввод, и вывод обязательными не являются. Рассмотрим, например, следующую программу для машины Тьюринга: "сдвинуть каретку на одну позицию вправо и остановиться". Чем не алгоритм?

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение22.08.2010, 12:44 
Аватара пользователя


24/09/09
45
Jer
Kitozavr в сообщении #338527 писал(а):
Как появился первый язык программирования? Неужели был написан в машинных кодах?


По моему нужно для начало утвердить что такое язык программирования.

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

Цитата:
Создатели языков по-разному толкуют понятие язык программирования. К наиболее распространённым утверждениям, признаваемым большинством разработчиков, относятся следующие:

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


14/05/05
224
Баку
Maslov в сообщении #346188 писал(а):
На мой взгляд, и ввод, и вывод обязательными не являются. Рассмотрим, например, следующую программу для машины Тьюринга: "сдвинуть каретку на одну позицию вправо и остановиться". Чем не алгоритм?

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

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


09/08/09
3438
С.Петербург
Ринат в сообщении #346209 писал(а):
Операции над этими множествами и есть алгоритм, исполняемый машиной Тьюринга.
Хорошо, готов согласиться, что программа для машины Тьюринга -- это алгоритм, принимающий на входе одно состояние МТ и дающий на выходе другое.

А что является входом для алгоритма вычисления 10-й цифры десятичного представления числа $\pi$? Не любой, а именно 10-й?

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение22.08.2010, 14:36 
Аватара пользователя


14/05/05
224
Баку
Maslov в сообщении #346211 писал(а):
А что является входом для алгоритма вычисления 10-й цифры десятичного представления числа $\pi$? Не любой, а именно 10-й?

Число $\pi$.

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


09/08/09
3438
С.Петербург
Ринат в сообщении #346213 писал(а):
Число $\pi$.
С чего бы это? Алгоритм вычисления 10-й десятичной цифры числа $\pi$ вовсе не считывает число $\pi$ на входе. И вообще ничего не считывает.
Что в Вашем понимании означает "ввод"?

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение22.08.2010, 18:08 
Аватара пользователя


14/05/05
224
Баку
Maslov в сообщении #346216 писал(а):
С чего бы это? Алгоритм вычисления 10-й десятичной цифры числа вовсе не считывает число на входе. И вообще ничего не считывает. Что в Вашем понимании означает "ввод"?

Насчет считывания числа $\pi$ я поспешил.

$\pi = \sum\limits_{k=0}^\infty 16^{-k}  \left [ \frac 4 {8k+1} - \frac 2 {8k+4} - \frac 1 {8k+5} - \frac 1 {8k+6} \right ]$

Из данного представления (записанное в 16-ой форме) можно найти любую цифру (в том числе 10-ую) числа $\pi$ не зная предыдущих цифр, которую затем можно перевести в десятиричное представление (имея в виду продолжение алгоритма).

В данном примере Вам необходимо ввести по крайней мере два начальных значения: число k и число N = 10. Не ввод ли это? Или в Вашем понимании ввод - это что-то вроде cin?

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


09/08/09
3438
С.Петербург
10 вводить надо только в случае, если алгоритм должен уметь считать любую цифру $\pi$. А если достаточно уметь считать только 10-ю, то ничего вводить не надо; этот параметр (10) у него внутри. Так же, как остальные константы (1, 2, 4, 6, 8, 16).

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение22.08.2010, 21:02 


21/03/06
1545
Москва
Maslov писал(а):
10 вводить надо только в случае, если алгоритм должен уметь считать любую цифру . А если достаточно уметь считать только 10-ю, то ничего вводить не надо; этот параметр (10) у него внутри. Так же, как остальные константы (1, 2, 4, 6, 8, 16).

Именно это я имел ввиду, что ввод не является обязательным. А вот насчет вывода - конечно, под выводом надо понимать любое воздействие на окружающий мир, например сдвиг фрезы в ЧПУ и т.п. Так что все-таки алгоритм без вывода, наверное, может быть, но он бессмысленен. Поэтому вывод оставим.

Цитата:
Как Вы собираетесь получить результат, если не выполняется эффективность и конечность?

Насчет конечности - а почему она собственно должна быть? Алгоритм автомата пожаротушения как пример:

Код:
again:
диагностировать пожар;
если пожар gosub погасить;
если нет goto again;

погасить:
...
return;

Этот алгоритм бесконечен. Но тем не менее алгоритм, правда?

Насчет эффективности - а что вообще под этим термином подразумевал Кнут?

 Профиль  
                  
 
 Re: Первый язык программирования.
Сообщение23.08.2010, 06:09 


16/06/10
199
Maslov в сообщении #346312 писал(а):
А если достаточно уметь считать только 10-ю, то ничего вводить не надо; этот параметр (10) у него внутри.
А какова ценность (эффективность?) данного алгоритма? Время от времени вычислять 10-ю цифру числа $\pi$? Есть вероятность, что через какое-то время полученное значение будет другим?

e2e4 в сообщении #346318 писал(а):
Насчет конечности - а почему она собственно должна быть? Алгоритм автомата пожаротушения как пример:
По-моему, хороший пример "конечного набора" из трех правил. Сравните:
Код:
диагностировать пожар;
если пожар gosub погасить;
диагностировать пожар;
если пожар gosub погасить;
' и так далее, бесконечное количество повторений
...

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


04/05/09
4587
Maslov в сообщении #346312 писал(а):
А если достаточно уметь считать только 10-ю, то ничего вводить не надо; этот параметр (10) у него внутри.
Кстати, тогда и считать ничего не надо - сразу выводим 10-ую цифру.

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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