60-летний Fortran все еще остается сильным


Первое справочное руководство по Fortran было выпущено 15 октября 1956 года, за шесть месяцев до того, как первые работающие компиляторы были распространены среди клиентов IBM. Хотя у Фортрана могут быть конкуренты как у первого компилируемого компьютерного языка, он, безусловно, является самым влиятельным и самым надежным из первых языков высокого уровня.

Название Fortran расшифровывается как FORmula TRANslator — полное название было IBM Formula Translating System, и оно было разработано специально для IBM 704 командой под руководством Джона Бэкуса.

Джон Бэкус

3 декабря 1924 г. — 17 марта 2007 г.

До Fortran каждый новый компьютер имел свой собственный язык — машинный код, привязанный к архитектуре машины и предназначенный для максимального использования ее возможностей. Программист знал бы, как работает машина, и тщательно разработал бы код, чтобы добиться результата, который требует минимум времени и / или памяти. Каждый байт выделялся и управлялся вручную, как и использование внутренних регистров машины, в которых выполнялась работа. Большая проблема в том, что работа с машинным кодом особенно недружелюбна и делает создание программ трудоемким и подверженным ошибкам.

Чтобы уйти от машинного кода и позволить компьютерному языку работать на нескольких машинах, необходим компилятор. Это был прорыв, сделанный IBM для 704, и оказалось чрезвычайно сложно найти автоматический способ перевода арифметических выражений — задачу, которую выполняет Fortran.

Фортран представил много новых идей — арифметическое присвоение, комментарии, цикл DO, подпрограммы и функции, форматированный ввод / вывод — и это лишь некоторые из них. Это также посеяло идею машинной независимости, потому что машина с компилятором Fortran могла запускать любую программу Fortran.

Fortran был продуктом IBM, но даже ребенок Big Blue того времени, должно быть, был удивлен тем, как быстро он стал языком вычислений и сделал IBM ведущим поставщиком компьютеров.

IBM 704 — первый с Fortran

Многие ключевые возможности, которые мы привыкли ожидать от языка высокого уровня, включая арифметические и логические выражения; цикл DO (ранняя форма цикла FOR); оператор IF; подпрограммы; массивы; и форматирование были введены Фортраном. И все же изначально Fortran оставался ближе к базовой машине с такими конструкциями, как 3-way if:

если (выражение) doneg, dozero, dopos

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

Нам сложно понять, насколько сложной была эта проблема. Раньше этого никогда не делали, и команда толком не знала, как будет выглядеть успех. Большинство программистов в то время просто не думали, что языки высокого уровня можно заставить работать, а ассемблер всегда будет быстрее и эффективнее с точки зрения памяти. Как написал несколько лет спустя Джон Бэкус:

Насколько нам было известно, мы просто придумывали язык по ходу дела. Мы не считали проектирование языка сложной проблемой, а просто прелюдией к реальной проблеме: проектированию компилятора, который мог бы создавать эффективные программы. Конечно, одной из наших целей было разработать язык, который позволил бы инженерам и ученым самим писать программы для 704. Мы также хотели избавиться от большого объема бухгалтерского учета и подробного повторяющегося планирования, связанного с ручным кодированием. В самом начале нашей работы мы имели в виду понятия операторов присваивания, подписанных переменных и оператора DO (который, как мне кажется, был предложен Херриком). Мы чувствовали, что это обеспечивает хорошую основу для достижения наших целей в отношении языка, и все, что было необходимо, появилось, когда мы попытались построить способ программирования на этих базовых идеях. Мы, конечно, понятия не имели, что языки, почти идентичные тому, над которым мы работали, будут использоваться более чем на одном компьютере IBM, не говоря уже о языках других производителей. (В конце концов, в то время было очень мало компьютеров.) Но мы действительно ожидали, что наша система окажет большое влияние в том смысле, что она сделает программирование для 704 намного быстрее, дешевле и надежнее. Мы также ожидали, что, если мы добьемся успеха в достижении наших целей, другие группы и производители последуют нашему примеру в снижении стоимости программирования, предоставляя аналогичные системы с разными, но похожими языками.

Как только что-то достигнуто в программном обеспечении, становится всегда легко. Тогда никто не знал, как взять что-то вроде:

А = В * 3 + (С-4) * 283-Z / X

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

Что также вызывает удивление, так это то, что спустя 60 лет Фортран по-прежнему остается популярным языком для некоторых важных приложений, например для моделирования климата. Развиваясь от оригинального FORTRAN I через FORTRAN II и II, FORTRAN 66 (также известный как FORTRAN IV), он приобрел большую популярность с Fortran 77, версией, которая потеряла заглавные буквы. С тех пор появились Fortran 90 и Fortran 95, которые до сих пор широко используются. Более поздними версиями являются Fortran 2003 и Fortran 2008. Работа над Fortran 2015, которая ожидается в середине 2018 года, все еще ведется. Несмотря на то, что она эволюционировала, она не изменилась до неузнаваемости и все еще настолько верна своему первоначальному дизайну, что Программист на ФОРТРАНЕ I сможет кое-что изучить в Фортране 2008.

Как первый язык высокого уровня, Fortran, несомненно, важен, но он также повлиял на многие поколения программистов, особенно если принять во внимание популярность BASIC, который был заимствован непосредственно из Fortran в эпоху ранних домашних компьютеров.

Каждый язык, компилирующий выражение, обязан Фортрану и Джону Бэкусу.


Добавить комментарий