Чи правда, що перші версії компіляторів С працювали десятки хвилин і вимагали міняти дискети між етапами?


15

Натхненний цим питанням .

Я чув, що деякі дуже ранні версії компіляторів С для персональних комп'ютерів (я думаю, це близько 1980 р.) Мешкали на двох-трьох дискетах, і щоб скласти програму, потрібно було спочатку вставити диск із "першим проходом", запустити "перший пропуск", потім перейдіть на диск із "другим проходом", запустіть це, потім зробіть те ж саме для "третього проходу". Кожен пропуск тривав десятки хвилин, тому розробник втрачав багато часу у випадку навіть помилки.

Наскільки реально це твердження? Якими були фактичні цифри та деталі?


2
Здається, це могло бути правдою. У 60-ті роки, коли програми були на перфокартах або паперовій стрічці, програмісту, можливо, доведеться чекати більше дня, щоб дізнатися про помилку.
Кріс Карт

3
Цікаве запитання. Якби це було правдою, я радий, що живу зараз, а не тоді;)
Анто

2
Пам’ятаю, мені довелося кілька разів поміняти диски, щоб скласти паскаль на персональному комп’ютері Amstrad .
Мартін Йорк

Ну, справа в тому, щоб чекати дня, був не стільки час роботи, а черга речей попереду. Раніше там були місця, куди ви хотіли б подати колоду для карт, а деякі нацисти в білому халаті забрали б її і поклали картки в бункер на дозвіллі. Час запуску може становити лише кілька хвилин або секунд. Час обробки людини часто бував у годинах.
quick_now

4
Я бачив проекти сучасного C ++, які займають повне очищення та відновлення займають десятки хвилин, а замість дискових змін вони автоматично роблять сторінки віртуальної пам'яті через ОС. Чому всі продовжують говорити, що комп’ютери настільки вдосконалені в наші дні? =)
Патрік Х'юз

Відповіді:


29

Абсолютно. У мене був Microsoft C (версія 1.0, я думаю) для комп'ютера Zenith Z100 на початку 80-х, який постачався на декількох дискетах 5,25 "360 К. У Z100 не було жорсткого диска, тому мені довелося часто міняти дискети, коли я перемикався між редактором, компілятором і лінкером. Копіювання та посилання декілька хвилин не були незвичайними. Це повинно бути набридливо, я заплатив 500 доларів за плату розширення 2 МБ (так, мегабайт), щоб я міг завантажувати всі файли в Диск оперативної пам’яті, що скоротив час приблизно до 30 секунд.


+1, однак у мене протилежне відчуття. Прочитавши програму-прихильник, сьогодні раптом стає смішніше.
Саймон Берго

Microsoft C 1.0 фактично була перепакована версія решітки C. AFIK, Lattice C був першим компілятором MS-DOS C. Для цього потрібні два пропуски компілятора окремо.
OldFart

1
Вуа! 2 Мб! Це було величезне для того часу.
Система вниз

Я використовував Turbo C 1.0 на комп'ютерах IBM (ну, справді АТ, якщо добре пам’ятаю), і це було не так вже й погано. Це були швидші машини.
Gort Robot

9

Це, мабуть, правда.

У перші дні домашніх обчислень (для дітей / батьків, а не про Хобієста) машини не мали навіть жорстких дисків.

У моїх батьків у Amstrad ОС була на 1 дискеті, і це дозволило вам вибрати програму для запуску, яка, можливо, вимагала перемикання дискети (тобто текстові процесори були на іншому диску), що вимагало ручного перемикання назад на диск ОС, якщо програма знадобився якийсь спеціалізований сервіс ОС.

У мене була копія паскалі для амстрада. Я пам’ятаю, що редактор знаходився на 1 диску, але під час компіляції він вимагав перемикання назад і вперед між disk1 і disk2, оскільки процеси компіляції тривали (можливо, він навіть потребував переходу на диск ОС у певні моменти процесів (але це не я так що впевнено)).

Добрі старі часи, коли вся ОС розміщена на одній 3.5 дискеті (але не дуже багато іншого).


4
Цілком вірно. Коли компілятор "lightpeed C" вийшов для macintosh і "turbo C" для ПК MS-DOS, ми були в захваті, оскільки він працював за один прохід.
S.Lott

3,5? Амстрад моєї родини мав дискет 2.5 ". І так, CP | M був на диску 1 набору 4, а логотип - на диску 4. Я не пам'ятаю, що там ще було.
Пітер Тейлор,

@ Петер Тейлор: Ви більше, ніж вірогідні. Це так давно (я відчуваю себе старим).
Мартін Йорк

1
Це не було проблемою для мене. Коли я навчився C, у мене був гарний великий накопичувач на 21 Мб :-)
dan04

1
@ dan04 - Вийди з наших колективних газонів. Прокляті батоги та їхні фантазійні жорсткі диски .....;)
Система знищена

6

Дискети були представлені в 1971 році (тобто 8-дюймовий дискети, тобто), але вони не були популярними до середини 70-х (з 5,25 дюймовими дисками). C - з 1973 року, тому я думаю, що відповідь багато в чому залежить від того, що ви називаєте "першою версією" та яким був контекст складання. Подумайте про ці змінні:

  • Використовувані бібліотеки . Складаючи бібліотеку, яка не є на поточному диску, вам доведеться поміняти дискети між ними.
  • Складність програми ("Здрастуй, світ" не те саме, що "Командир Нортона")
  • Апаратне забезпечення (особисто я думаю, що серйозне збирання майже завжди робилося на мейнфреймі чи міні-комп’ютерах)

Зрештою - на сьогодні компіляція займає кілька хвилин - просто відрегулюйте компроміс між вашим обладнанням та складністю програми. Тільки частина дискети не є :-).

Враховуйте також, що велика кількість обчислень у 70-х роках все ще робилася на конструкції термінальної мейнфрейму, тому зміна дискети може бути дещо малоймовірною (принаймні, в контексті виробництва бізнесу. Я не знаю, чи використовувався C як "домашній" " мову).


5
"Перша" версія не працювала на дискетах. Це була система, що базується на жорсткому диску PDP-11 в AT&T. Однак першу версію для комп'ютера з дискетами (наприклад, CP / M, MS-DOS тощо) було досить важко керувати.
S.Lott

Я пам’ятаю, що бачив дискету (знімний диск) з 60-х. Це було 4 фути поперек. Вони були встановлені на фанері, щоб їх можна було обкатати навколо лабораторії. Провів близько 5 К, як я пам’ятаю.
Мартін Йорк

Ви не хочете замінювати ТОЙ на кожен запуск компілятора! Я хотів би побачити фотографію цього :-).
vstrien

6

Моє перше проникнення в навчанні C було на Commodore 64 (так, там був компілятор), ще в кінці 80-х. Якщо я пам'ятаю правильно, компілятор / редактор / посилання був на одному диску, а ваш джерело - на іншому, і вам довелося міняти місцями хоча б раз на етапі компіляції. Звичайно, на С-64 ви там, де завжди міняєте місцями.

Що для цього варто, у мене ще є поле та документи для цього компілятора. Здійснює ностальгічне читання кожні пару років.


2
Я також дізнався C на Commodore 64 ще в 1984 році. Я пам'ятаю, як поміняти дискети під час компіляції досить чітко. Я хочу сказати, що я використовував компілятор Abacus, але я, можливо, не пам'ятаю це правильно.
Клінт Міллер

@Clint, я впевнений, що ти прав. Ось назва на коробці.
DevSolo

@Clint: У мене був той самий компілятор. Commodore 64 був приголомшливим комп'ютером для навчання програмуванню. Це було досить просунуте, щоб зробити якісь справді цікаві речі, але досить прості, щоб ви могли зрозуміти все обладнання, необхідне для взаємодії, що було потрібно, тому що вони не мали шарів високого рівня абстракції тоді, як вони є сьогодні.
Данк

6

Перший мій компілятор C був на TRS-80 Model 4 із запуском CP / M (перша модель, яка зробила б це правильно, не маючи місцях пам'яті, незмінно відображених на ПЗУ). Це вимагало, щоб диск на першому диску був на ньому CP / M.

Після того, як я пережив будь-який редактор, яким я користувався, мені довелося складати, збирати та пов'язувати програму, перш ніж я міг запустити її. У кожного був свій процес, розпочатий у командному рядку. Компілятор, асемблер та лінкер не всі вмістяться на одній дискеті. (IIRC, асемблер і лінкер можуть вписатися разом.)

Тому я мав би програму та редактор на системному диску CP / M і мінявся дисками компілятора та асемблера / лінкера.

Я дивився на програму, яка дозволила б мені запустити, не маючи системного диска, і у мене був план (якого я вже не пам’ятаю) налаштувати речі, щоб я міг зробити невеликий пакетний файл і автоматизувати виклики командного рядка, але я ніколи не дотримувався.

Я майже відмовився від С після спроби використовувати цю систему, і повернувся до Паскаля на кілька років.


Можливо, UCSD P-система Pascal?
quick_now

2
@quickly_now: Щось компілюється в p-код, але його не виставляють як UCSD. Природно, я позбувся цього десятиліть тому і мало про це пам’ятаю. Коли я отримав Turbo Pascal, я майже забув про це.
Девід Торнлі

5

Коли я був у середній школі (1989-1990 рр.), Ми робили паскаль на яблуці II, і це було ПОЛІ . Ви можете написати програму зі 100 рядків або близько того, коли натискаєте компіляцію, це зайняло кілька хвилин. Я пам’ятаю, що ви встигли зайти до чоловічої кімнати, поки вона складалася до запуску програми.

Близько половини шляху кинув цей термін, я отримав Mac SE, який був набагато швидше! Подумайте, Паскаль був набагато кращим.


2
+1 за згадування Mac SE. Я пам'ятаю, що я отримав 20 Мб зовнішній жорсткий диск для свого Mac SE. Він був настільки великий, що весь Mac сидів зверху.
philosodad

У мене був внутрішній, але я, мабуть, мав і таке. Дуже приємний дизайн насправді.
Захарій К

5

Батько мого друга був ще в той час високопрофільним програмістом. Він втомився чекати результатів своїх збірок, днів, іноді й тижня. Працювали в основному з дому, писали програму, пробивали картки, заїжджали, давали коробку оператору і певний час сперечалися, його код був важливішим, ніж всі інші і чекати.

Іноді код так і не дійшов до комп’ютера, мій друг розповідав мені історію того часу, коли його батько насправді, я маю на увазі РЕАЛЬНО злий на нього. Він ніколи насправді не розумів, чому до набагато пізніше в житті, але хлопчик ця коробка, наповнена жорсткими паперами, виглядала як весела ... ей, їх також повно дірок !!!

Одного разу він взяв аргумент на управління, і я думаю, що він зробив добру справу, тому що вони доставили міні-комп’ютер до його будинку. Я мушу зазначити, що до того часу комп’ютер зайняв більшу частину вітальні, що, звичайно, вийшло за межі.

Так що так, заміна дисків між етапами компіляції є певною можливістю, і довіряйте мені, коли я кажу, що це було покращення VAST від наявних до цього !!!

Тільки зачекайте 20 років або близько того, я можу уявити, що хтось задає питання дещо на зразок:

Це правда, що раніше їм доводилося використовувати клавіатури для введення кодового листа за буквою?


3

Я не знаю про C, але в той період часу у мене був компілятор Microsoft Fortran, який пройшов два проходи. Мало того, але у мене була сторінка, що програма запускалася неправильно (я впевнений, що вихідний код був правильний), так що це було так, я зовсім відмовився від компіляції для ПК. Це були дні до Інтернету, і ПК належав моєму роботодавцю. Ще було чудово мати ПК, я міг покласти роботу на дискету і взяти її додому та відредагувати. Тож коли я прийшов на роботу наступного дня, у мене вже була відредагована програма, а не рукописні замітки.

Навіть за набагато більш ранніх днів (я починаю програмування весною 70-х років) компілятор був єдиною командою JCL в операційній системі пакетної обробки мейнфреймів. Це так само, як описано вище. Ви чекали в черзі на клавішу і пробивали свої картки з холеритом. Потім ви передали їх оператору через вікно. Залежно від кольору PNC (в основному перфокарт, що містить номер облікового запису / пароль), ви можете отримати результати від 1 до 24 годин пізніше. Студенти низького рівня мали пізніший поворот. Це справді було завданням виконати завдання "привіт світ" за два тижні, відведені на це! Через пару років я влаштувався на програмування за сумісництвом, і міг зависати в комп'ютерному центрі вночі. Дехто з нас навіть міг самостійно нагодувати читача карт. Тоді поворот ws лише кілька хвилин / Але ви могли це зробити лише пізно вночі.

Тож тривалий час компілятори в основному були предметом мейнфреймів (машини на мільйон доларів, що належать дуже великим організаціям). А кілька міні-комп’ютерів навколо часто доводилося програмувати дивними та хитрими способами. Я використовував один міні-комп’ютер для оцифрування сейсмограм. Для завантаження ОС знадобилося близько 10-15 хвилин, щоб провести паперову стрічку через неї, тоді ви зробите свою справу на таблиці оцифровщика.


2

Так, звісно. Я не використовував C на тих старих машинах CP / M, я використовував CB-80. Складено ОСНОВНО. (І так, це було досить жахливо). На Heath / Zenith Z-89 з двома дискетами, що вміщували 89K.

Компіляція одного диска була настільки жахливою, що було випадком її забути. Занадто багато замінних дисків. 2 дискети було ЛЮКСУВАНО! Джерело з одного, компілятор - з іншого. Встановіть компіляцію і йдіть геть за чашкою чаю, поки машина пішла "кланг ляскає", коли дискети були зачеплені та відключені, а голови стукали навколо.

Бос придбав жорсткий диск розміром 5 Мб, розміром приблизно 18x18x8 дюймів, окремо живиться, і прикріплений до задньої частини H89 стрічковим кабелем довжиною близько 4 футів.

О швидкість! і ємність! з 5 Мб пам’яті.


1

я не знаю про C (мій перший компілятор C працював з жорсткого диска, і не був швидким), але перший Macro Assembler, який я використав (C64), потребував перемикання дискети (один для завантаження асемблера, інший для завантаження асемблера код), знадобилося 20+ хвилин для побудови системи, а через кілька місяців розробки як дискет, так і материнська плата перегрілися і загинули.


1

Коледж у 1988 р. - Fortran на ПК, 8088 512K (це K !!) оперативної пам’яті та одиночний дискет. Компіляція зайняла 20-30 хв., Мені не довелося міняти дискети, бо в мене була одна з цих 720K.

A Sun3 (68030 1 Мб оперативної пам’яті) і 24 термінали vt100 для всього класу.


1

До мого часу, гадаю. Моє перше "справжнє" програмування (все одно на ПК) було COBOL. У той час ми використовували комп'ютери IBM. Вони мали 2 360k дискети; один мав компілятор, а другий - ваш вихідний код.

Я знаю, що навіть для моїх простих проектів в коледжі було потрібно буквально 15 хвилин, щоб скласти біг на цих дискетах - я біг до кафетерії за кавою, поки вона складала. Потім для останнього проекту я працював над ним у своєму будинку приятелів. Він щойно придбав нову машину з цією річчю, яка називається жорстким диском - 10 мегабайт! Наш проект складено за хвилину. Це повністю підірвало мою думку.


У вас, швидше за все, не було налаштовано жодних дискових буферів. Лише кілька творив чудеса.

1

Мені довелося займатися дискети на моєму старому 128K Mac для різних застосувань, тому я ні на хвилину не сумнівався в цьому, хоча я не міг дати жодних деталей. Я не був би здивований, якби це не є частиною того, чому інтерпретатори BASIC були настільки всюдисущими на ранніх персональних комп'ютерах (немає необхідності в декількох пропусках, таблицях символів тощо).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.