Forth: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Рядок 7:
Створення Форту (Forth) як мови та середи програмування було поступовим. Для його «кристалізації» знадобилося понад десять років. Саме стільки знадобилося Чарльзу (Чаку) Г. Муру, щоб з розрізнених особистих ідей відібрати найкращі та покласти їх на ноти вихідного коду.
 
Як саме це відбувалося написано на Інтернет-вузлі створеної самим Муром фірми  — http://forth.com :
 
«Кар’єраКар'єра Мура, як програміста почалася в кінці 50-х років ХХ століття в Смітсоновській Астрофізичної Обсерваторії з програмами розрахунку ефемерид, орбітальних елементів, позиції космічних штучних супутників, і т.п.тощо Вихідний код цих програм заповнював два лотки перфокарт. Щоб мінімізувати перекомпіляцію цих великих програм, він вдосконалював простий інтерпретатор, який би читав карти, які керували програмою. Це надало йому можливість компонувати різні рівняння для декількох супутників без перекомпіляції. Цей інтерпретатор містив декілька команд і понять (концепцій), які збереглися в сучасному Форті: переважно команди читання «слів»„слів“, розділених пробілами, перетворення чисел із зовнішнього представлення до внутрішнього і конструкція «IF„IF ... ELSE»ELSE“. Він зрозумів, що введення програм у вільній формі, як ефективніше (менший і швидший код), так і надійніше, ніж загальна практика Фортрану  — форматування в специфічних колонках, які приводили до численних повторних проходів компілятора із-за невірно вирівняних колонок.
 
У 1961, Мур отримав ступінь бакалавра з Фізики в MIT і вступив до школи дипломованих фахівців Стенфорду. Він також зайняв частину машинного часу в Стендфордськом Лінійному Прискорювачі (SLAC), переписавши код, для оптимізації управління пучком двохмильного електронного прискорювача, використовуючи для розширення програм частини з його попередньої роботи з методом найменших квадратів. Ключовою частиною цієї роботи була програма під назвою CURVE, запрограмована в Алголі (1964). Для управління цією програмою, Мур використовував розширену версію свого інтерпретатору, яка керувала стеком (стосом) для передачі параметрів, змінних (зі здатністю явно вибрати і запам’ятатизапам'ятати значення), арифметики і операторів порівняння, та спроможністю визначити і інтерпретувати процедури.
 
У 1965, Мур переїхав до Нью-Йорку, щоб працювати вільним програмістом. Працюючи з Fortran, Algol, Jovial, PL/I та різними асемблерами, він продовжував використовувати свій інтерпретатор все частіше. Для міні-комп’ютерівкомп'ютерів і терміналів телетайпів тих, що з’явилисяз'явилися в кінці 60-х, Мур додав оператори управління вводу-виводу символів. Один з проектів включав транслятор Fortran-Algol і утиліти редагування файлів. Це укріплювало його впевненість в значущості використання пробілу як роздільника слів.
 
У 1968 молодожон-Мур, приєднався до Mohasco Industries in Amsterdam NY. Тут він розвивав програми комп’ютерноїкомп'ютерної графіки для IBM 1130 з 2250 графічним дисплеєм. Цей комп’ютеркомп'ютер мав 16-розрядний ЦП, 8K оперативної пам’ятіпам'яті, перший диск, клавіатуру, принтер, кард-рідер (що використався як резервна копія диску!) і компілятор Фортрану. Він додав крос-асемблер до своєї програми, щоб генерувати код 2250, а також примітивний редактор з інструментами управління первинним кодом. Ця система могла малювати динамічні 3-D зображення, за один прохід, тоді як програмне забезпечення IBM для цієї конфігурації могло промальовувати тільки статичні 2-D зображення. Для забави, він також записав ранню версію Spacewar і переписав програму Algol Chess новою мовою, тепер (вперше) названому FORTH. Він був ураженийвражений тим, наскільки все стало простіше.
 
Ім’яІм'я FORTH задумане як назва програмного забезпечення для комп’ютерівкомп'ютерів четвертого (FOURTH) покоління, які Мур бачив таким, що характеризується розподіленими маленькими комп’ютерамикомп'ютерами. Операційна система, яку він використовував у той час, мала обмеження на імена файлу в п’ятьп'ять символів,  — так "U"„U“ був відкинутий. FORTH був записаний по буквах у верхньому регістрі, в зв’язку зв'язку поширеності upper-case пристроїв вводу-виводу до кінця 70-х. Використання «Forth»„Forth“ стало загальноприйнятим, коли став широко доступним нижній регістр, тому що слово не було акронімом.
 
Мур створив Forth-базоване, розширюване, середовище програмування для IBM 1130 2250 яке перевершувало середовище на Фортрані. Це додавання команд циклу, концепція зберігання початкових даних в 1024-байтових блоках і інструментах для управління ними.
 
Найважливішим, був тепер словник. Процедури зараз мали імена, і інтерпретатор проводив пошук з використанням покажчиків імен для відповідності. Імена компілювали з лічильником і трьома символами, практика, узята в компіляторі Стенфорду і яка переважала в Forth до кінця 1980-х. В межах входу словника було «кодове„кодове поле»поле“, що містило адресу коду, який виконувався для цієї підпрограми. Це було реалізацією непрямого шитого коду, який було використано за п’ятьп'ять років до публікації Дьюара про непряме кодування яка з’явиласяз'явилася в Communications of the ACM [Dewar 1975]. Використання непрямого шитого коду було важливим нововведенням, оскільки непрямий перехід був єдиним вгорі як тільки слово було знайдене. Словарні статті (слова) словника могли вказувати або на інші процедури «високого„високого рівня»рівня“ або на інструкції в машинних командах.
 
Нарешті, для того, щоб забезпечити простий механізм для вкладення підпрограм, було додано другий стек (стос) «Стек„Стек повернень»(стос) повернень“. Вигода від наявності стекастеку (стосу), що резервується для адрес повернення, була та, що інший стек (стос) міг використовуватися вільно для передачі параметрів, без необхідності «балансування»„балансування“ до і після викликів. У 1970 Mohasco призначили Мура на амбітний проект, із залученням нового Univac 1108, який опрацьовував мережу орендованих ліній, системи введення замовлень. Він переніс Forth на Univac 1108, і організував зв’язокзв'язок з модулями КОБОЛУ, згідно таблиці імен пристроїв для діалогової обробки запитів. На Univac 1108 Forth був переписаний на асемблері. Ця версія Forth мала додаткові механізми для визначення і управління завданнями, а також ефективною схемою управління буферами блоків диска, подібною до схем що використовуються дотепер. На жаль, економічний спад змусив Mohasco закрити проект незадовго до його завершення.»
 
== Особливості ==