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
4596
Maslov в сообщении #346312 писал(а):
А если достаточно уметь считать только 10-ю, то ничего вводить не надо; этот параметр (10) у него внутри.
Кстати, тогда и считать ничего не надо - сразу выводим 10-ую цифру.

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

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



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

Сейчас этот форум просматривают: Google [Bot]


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

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