|
Такой двойственной природой обладает не только отдельный адрес, но и вся команда, участки программ и программа в целом. Это открывает путь к самым разнообразным возможностям формирования программ в целом и по частям. В этих возможностях — сила ЭВМ, но в них же кроется и источник многочисленных трудностей в программировании. В самом деле, если программа выполняется совсем не в том виде, в каком ее составил программист, если предварительно она подвергается многократным разнообразным преобразованиям, то трудно быть уверенным, что окончательный результат работы программы будет именно тем, какого хотел ее автор. 4. Уже при рассмотрении простейших задач — в гл. 3, когда речь шла о переводе чисел из одной системы счисления в другую, в гл. 1 в связи с решением уравнения ах2 + Ьх + с = 0 — обращалось внимание на важность обработки текстовой или символьной информации. Роль такой информации постоянно возрастает по мере расширения круга решаемых задач, обогащения средств их описания. Так, если мы хотим избавить человека от необходимости пользоваться в программах числовыми адресами, то необходимо оснастить машину программой, способной переводить команды из символических в восьмеричные обозначения (см. § 2 гл. 14). Гораздо более сложной является задача перевода с Алгола на машинный язык. Такие задачи постоянно возникают в практике программирования. От программирования вычислений по формулам происходит постепенный переход к автоматическому получению самих формул. Как заметил один известный программист, не за горами время, когда машина, получив задание обратить матрицу, будет в ответ печатать разъяснение, почему в данной задаче можно обойтись без обращения матриц. Пусть это только шутка, но программисты уже давно задумываются над тем, как научить машину анализировать смысловое содержание поставленной перед ней задачи, с тем чтобы она самостоятельно находила способ решения задачи. Ясно, что при этом языки, подобные Алголу, становятся малon р и годным и для формулировки задания машине. Шагом вперед являются языки, целиком ориентированные на обработку символьной информации, или дополненные средствами описания процессов такой обработки. В перспективе стоит задача научить машину понимать естественные языки.
|