Вдохновлен этим вопросом .
Я слышал, что некоторые очень ранние версии компиляторов C для персональных компьютеров (я полагаю, это около 1980 года) располагались на двух или трех дискетах, поэтому для компиляции программы сначала нужно было вставить диск с «первым проходом», запустить «первый проход», затем перейдите на диск со «вторым проходом», запустите его, затем сделайте то же самое для «третьего прохода». Каждый проход длился десятки минут, поэтому разработчик потерял много времени даже в случае опечатки.
Насколько реалистично это утверждение? Каковы были реальные цифры и детали?
Ответы:
Абсолютно. У меня был Microsoft C (я думаю, версия 1.0) для компьютера Zenith Z100 в начале 80-х, который поставлялся на нескольких 5,25-дюймовых дискетах 360K. У Z100 не было жесткого диска, поэтому мне приходилось часто менять местами дискеты, когда я переключался между редактором, компилятором и компоновщиком. Время компиляции и компоновки в несколько минут не было чем-то необычным. Это стало настолько раздражающим, что я заплатил 500 долларов за плату расширения памяти объемом 2 МБ (да, мегабайт), чтобы я мог загрузить все файлы в RAM-диск. Это сократило время примерно до 30 секунд. Забавно ... В те дни мне действительно нравилось программировать, потому что это было весело. Сегодня это работа.
источник
Это, вероятно, правда.
В первые дни домашних вычислений (для детей / родителей, а не Hobiest) машины даже не имели жестких дисков.
У моих родителей был Amstrad, операционная система была на 1 дискете, и это позволяло вам выбрать приложение для запуска, которое, возможно, потребовало переключения дискет (т.е. текстовые процессоры были на другом диске), требующих ручного переключения обратно на диск ОС, если приложение нужен какой-то специализированный сервис ОС.
У меня была копия паскаля для амстрада. Я помню, что редактор находился на 1 диске, но во время компиляции он требовал переключения назад и вперед между диском 1 и диском 2, поскольку процессы компиляции продолжались (возможно, он даже требовал переключения на диск ОС в определенные моменты процесса (но я не так что конечно)).
Старые добрые времена, когда вся ОС помещалась на одной дискете 3.5 (но не более того).
источник
Флоппи-диски были представлены в 1971 году (то есть 8-дюймовые флоппи-диски), но не были популярны до середины 70-х годов (с 5,25-дюймовыми дисками). C относится к 1973 году, поэтому я думаю, что ответ во многом зависит от того, что вы называете «первой версией», и каков был контекст компиляции. Подумайте об этих переменных:
В конце концов - в наши дни компиляция все еще занимает несколько минут - просто измените компромисс между вашим оборудованием и сложностью программы. Только часть дискеты не :-).
Примите также во внимание, что большая часть вычислений в 70-х годах все еще выполнялась на конструкции терминала-мэйнфрейма, поэтому замена дискет может быть несколько маловероятной (по крайней мере, в контексте производственного процесса. Я не знаю, использовался ли C как «домашний»). "язык".
источник
Мой первый опыт изучения C был на Commodore 64 (да, для него был компилятор), еще в конце 80-х. Если я правильно помню, компилятор / редактор / компоновщик был на одном диске, а ваш источник - на другом, и вам пришлось хотя бы раз поменять местами на этапе компиляции. Конечно, на C-64 вы всегда обмениваетесь.
Что бы это ни стоило, у меня все еще есть коробка и документы для этого компилятора. Делает для некоторого ностальгического чтения каждые пару лет.
источник
Мой первый компилятор C был на TRS-80 Model 4 с CP / M (первая модель, которая сделала бы это должным образом, не имея места с низкой памятью, постоянно привязанного к ПЗУ). Требуется диск на первом диске, чтобы иметь CP / M на нем.
Как только я закончил работу с любым редактором, я должен был скомпилировать, собрать и связать программу, прежде чем смог ее запустить. У каждого был свой процесс, запускаемый из командной строки. Компилятор, ассемблер и компоновщик не все поместятся на одной дискете. (IIRC, ассемблер и компоновщик могут совмещаться.)
Следовательно, я должен иметь программу и редактор на системном диске CP / M и менять местами на дисках компилятора и ассемблера / компоновщика.
Я смотрел на программу, которая позволяла бы мне запускаться без системного диска, и у меня был план (который я больше не помню), чтобы настроить все, чтобы я мог сделать небольшой командный файл и автоматизировать вызовы командной строки, но я никогда не доводил до конца.
Я довольно сильно разочаровался в Си после попытки использовать эту систему и вернулся на Паскаль на несколько лет.
источник
Когда я учился в средней школе (1989-1990), мы делали паскаль на яблоке II, и это было МЕДЛЕННО . Вы можете написать программу из 100 строк или около того, когда вы нажмете «compile», это займет несколько минут. Я помню, что у вас было время пойти в мужскую комнату, пока она собиралась, до запуска программы.
Примерно на полпути бросил этот термин, я получил Mac SE, который был намного быстрее! Думаю, Паскаль был намного лучше.
источник
Отец моего друга был известным программистом того времени. Он устал ждать результатов своих сборок, дни, иногда недели. Работал в основном из дома, писал программу, перфорировал карты, проезжал, отдал коробку оператору и поспорил на время, его код был важнее всех остальных и ждал.
Иногда код никогда не доходил до компьютера, мой друг рассказывал мне историю того времени, когда его отец действительно, я имею в виду ДЕЙСТВИТЕЛЬНО злиться на него. Он никогда не понимал, почему, пока намного позже в жизни, но мальчик, этот ящик, полный жестких бумаг, выглядел забавным ... эй, их дырявый тоже !!!
Однажды он передал спор руководству, и я думаю, что он привел веские доводы, потому что они доставили мини-компьютер к его дому. Я должен упомянуть, что к тому времени компьютер занял большую часть гостиной, что, конечно, стало недоступным.
Так что да, замена дисков между этапами компиляции - определенная возможность, и поверьте мне, когда я говорю, что это было НАИБОЛЕЕ улучшение по сравнению с тем, что было доступно до этого !!!
Просто подождите 20 лет или около того, я могу представить, что кто-то задает вопрос вроде:
Правда ли, что раньше им приходилось использовать клавиатуры для ввода кода по буквам?
источник
Я не знаю о C, но в то время у меня был компилятор Microsoft Fortran, который занимал два прохода. Мало того, у меня была программа длиной в страницу, которая работала некорректно (я уверен, что исходный код был верным), так что на этом я полностью отказался от компиляции для ПК. Это было до интернета, и компьютер принадлежал моему работодателю. Было по-прежнему замечательно иметь ПК, я мог положить работу на дискету, взять ее домой и отредактировать. Поэтому, когда я приступил к работе на следующий день, у меня уже была отредактированная программа, а не рукописные заметки.
Даже в более ранние времена (я начал программировать весной 70-х) компилятор представлял собой одну команду JCL в ОС мэйнфрейма пакетной обработки. Это так же, как описано выше. Вы ждали в очереди нажатия клавиш и били свои карточки с галерией. Затем вы передали их оператору через окно. В зависимости от цвета вашего PNC (обычно это перфокарта с номером счета / паролем), вы можете получить результаты через 1–24 часа. Студенты низкого уровня имели более поздний поворот. Это было действительно непросто - выполнить задание «Привет, мир!» За две недели, отведенные для этого! Пару лет спустя я устроился на работу по совместительству и мог тусоваться ночью в компьютерном центре. Некоторые из нас могут даже прокормить кардридер сами. Затем поворот займет всего несколько минут / Но вы можете сделать это только поздно ночью.
Так что долгое время компиляторы были в основном для мэйнфреймов (машин класса миллион долларов, принадлежащих очень крупным организациям). И немногочисленные мини-компьютеры часто приходилось программировать странным и хитрым способом. Я использовал один мини-компьютер для оцифровки сейсмограмм. На загрузку ОС ушло около 10-15 минут, чтобы провести через нее бумажную ленту, а затем вы бы занялись своими делами на планшете.
источник
Да точно. Я не использовал C на этих старых машинах CP / M, я использовал CB-80. Скомпилированный бейсик. (И да, это было довольно ужасно). На Heath / Zenith Z-89 с 2 дисководами, каждый из которых вмещал 89K.
Компиляция одного диска была настолько ужасна, что это был случай забыть об этом. Слишком большая замена диска. 2 флоппи-дисководов было ЛЮКС! Источник на одном, компилятор на другом. Запусти компиляцию и уйди за чашкой чая, пока машина работала как «лязг, лязг, лязг», когда дискеты были заняты и разъединены, а головы стучали.
Босс купил жесткий диск объемом 5 МБ, размером около 18x18x8 дюймов, с отдельным питанием и прикрепленный к задней панели H89 с помощью ленточного кабеля длиной около 4 футов.
Ох скорость! и вместимость! с 5 МБ памяти.
источник
не знаю о C (мой первый C-компилятор работал с жесткого диска и не был быстрым), но первый использованный мной Macro Assembler (C64) потребовал переключения с дискет (один для загрузки ассемблера, другой для загрузки код), на сборку системы ушло более 20 минут, и после нескольких месяцев разработки и дисковод гибких дисков, и материнская плата перегрелись и умерли.
источник
Колледж в 1988 году = Фортран на ПК, 8088 512 КБ (это K !!) оперативной памяти и одного дисковода. Компиляция заняла 20-30 минут, мне не пришлось менять местами дискеты, потому что у меня была одна из этих новых 720К.
Sun3 (68030 1Mb ram) и 24 терминала vt100 для всего класса.
источник
Я полагаю, до моего времени. Моим первым "настоящим" программированием (на ПК, в любом случае) был COBOL. В то время мы использовали компьютеры IBM. У них было 2 360k дисководов; у одного был компилятор, а у другого был ваш исходный код.
Я знаю, что даже мои простые проекты в колледже заняли буквально 15 минут, чтобы скомпилировать работу на этих дискетах - я бегал в кафетерий за кофе, пока он собирался. Затем для финального проекта я работал над ним в доме моих друзей. Он только что получил совершенно новую машину с этой штукой под названием жесткий диск - 10 мегабайт! Наш проект скомпилирован менее чем за минуту. Это полностью взорвало мой разум.
источник
Мне приходилось танцевать дискеты на моем старом 128K Mac для различных приложений, поэтому я ни минуты не сомневался в этом, хотя не мог дать никаких подробностей. Я не удивлюсь, если бы это не было частью того, почему интерпретаторы BASIC были настолько распространены на ранних персональных компьютерах (не нужно многократных проходов, таблиц символов и т. Д.).
источник