Скачать презентацию Денніс Рітчі Денніс Мак-Алістер Рітчі 9 вересня Скачать презентацию Денніс Рітчі Денніс Мак-Алістер Рітчі 9 вересня

C_mova_history.ppt

  • Количество слайдов: 10

Денніс Рітчі Денніс Рітчі

Денніс Мак-Алістер Рітчі (9 вересня 1941 — 8 жовтня 2011) — американський вчений-інформатик, відомий Денніс Мак-Алістер Рітчі (9 вересня 1941 — 8 жовтня 2011) — американський вчений-інформатик, відомий як розробник мови програмування C, і впливом на інші мови програмування. Також він відомий як розробник операційних систем Multics і UNIX. Нагороджений премією Тюрінга у 1983 році і Національною Медаллю за розвиток технологій 1998 р. Перед виходом на пенсію в 2007 р. Рітчі працював головою відділу досліджень системного програмного забезпечення Lucent Technologies. Народився в Бронксвілі, Нью-Йорку. Закінчив Гарвардський університет зі ступенями в області фізики та прикладної математики. У 1967 році почав працювати в Науково-дослідному центрі обчислювальних технологій Bell Labs.

Премія Тюрінга Національна медаль за розвиток технологій В 1983 році Рітчі і Кен Томпсон Премія Тюрінга Національна медаль за розвиток технологій В 1983 році Рітчі і Кен Томпсон спільно отримали премію Тюрінга за їхній внесок в розробку загальної теорії операційних систем та створення операційної системи UNIX. Кен Томпсон (ліворуч) і Рітчі (в центрі) отримують Національну медаль за розвиток технологій від президента Білла Клінтона. 21 квітня 1999 р. , Томпсон та Рітчі були нагороджені Національною медаллю за розвиток технологій 1998 р. за внесок в створення операційної системи UNIX та мови програмування C

Рання розробка Початковий етап розробки Сі відбувся у стінах Bell Labs між 1969 та Рання розробка Початковий етап розробки Сі відбувся у стінах Bell Labs між 1969 та 1973 роками; Деніс Рітчі стверджує, що найбільш творчим був 1972 рік. Мову було названо «Сі» через те, що багато її можливостей було отримано від раніше створеної мови B. Існує чимало легенд щодо походження мови Сі, і пов'язаної з нею операційної системи UNIX, серед них: Розробка Сі стала результатом того, що його майбутні автори любили комп'ютерну гру, схожу на популярну гру Asteroids (Астероїди). Вони вже давно грали у неї на головному сервері компанії, який був недостатньо потужним, і повинен був обслуговувати близько ста користувачів. Томпсон і Рітчі вирішилили, що їм не вистачає контролю над космічним кораблем для того, щоб уникати зіткнень з деякими каменями. Тому вони вирішили перенести гру на вільний PDP 7, що стоїть в офісі. Проте цей комп'ютер не мав операційної системи, що змусило їх її написати. Врешті-решт, вони вирішили перенести цю операційну систему ще й на офісний PDP-11, що було дуже важко, оскільки її код був цілком написаний на асемблері. Було винесено пропозицію використати якусь високорівневу портативну мову, щоб можна було легко переносити ОС з одного комп'ютера на іншій. Мова B, яку вони спершу хотіли використати, виявилася позбавленою функціональності, здатної використовувати нові можливості PDP-11. Тому вони і зупинилися на розробці мови С. Найперший комп'ютер, для якого була спочатку написана UNIX, призначався для створення системи автоматичного заповнення документів. Перша версія UNIX була написана на асемблері. Пізніше для того, щоб переписати цю операційну систему, була розроблена мова С. До 1974 року мова С стала достатньо функціональною для того, щоб переписати на ній більшу частину ядра UNIX, котре спершу було написане на асемблері PDP-11. Це було перше ядро операційної системи реалізоване не на асемблері.

С Standard ANSI C -стандарт мови C опублікований Американським національним інститутом стандартів (ANSI). Дотримання С Standard ANSI C -стандарт мови C опублікований Американським національним інститутом стандартів (ANSI). Дотримання цього стандарту допомагає створювати легкопристосованість програми. Перший стандарт мови C був опублікований американським інститутом ANSI. Через деякий час він був прийнятий міжнародною організацією по стандартизації ISO, яка продовжила випускати наступні версії стандарту, які стали прийматися як стандарт й інститутом ANSI. Незважаючи на це стандарт досі частіше називають ANSI C, а не ISO C. C 89 У 1983 році Американський Національний Інститут Стандартів (ANSI) сформувала комітет X 3 J 11 для створення стандартної специфікації для мови C. У 1989 році, після тривалого и напруженого процесу, стандарт був завершений і затверджений як ANSI X 3. 159 -1989 «Мова програмування C» . Саме цю версію часто називають «ANSI C» , або «C 89» (щоб відрізнити її від C 99). C 90 У 1990 році, стандарт ANSI C (з невеликими змінами) було прийнято Міжнародною організацією зі стандартизації (ISO) як ISO / IEC 9899: 1990. Цю версію іноді називають C 90. Однак, Терміни C 89 и C 90 відносяться по суті до однієї мови. C 99 У березні 2000 року ANSI прийняли стандарт ISO / IEC 9899: 1999. Цей стандарт зазвичай називають C 99. Це і є сучасний стандарт мови програмування C, однак його не підтримує повністю жоден компілятор. C 1 x - новий стандарт мови, прийнято в 2011 році як ISO / IEC 9899: 2011. Існує чорновий варіант. Основним нововведенням стандарту вважається підтримка багатопоточності.

Філософія С — мінімалістична мова програмування. Серед її головних цілей: можливість прямолінійної реалізації компіляції, Філософія С — мінімалістична мова програмування. Серед її головних цілей: можливість прямолінійної реалізації компіляції, використовуючи відносно простий компілятор, забезпечити низькорівневий доступ до оперативної пам'яті, формувати лише декілька інструкцій машинної мови для кожного елементу мови, і не вимагати обширної динамічної підтримки. У результаті, код С придатний для більшості системного програмного забезпечення, яке традиційно писалося асемблером. Незважаючи на її низькорівневі можливості, мова проектувалася для машинно-незалежного програмування. Сумісна зі стандартами та машинно-незалежно написана мовою C програма, може легко компілюватися на великій кількості апаратних платформ та операційних систем з мінімальними змінами. Мова стала доступною для великої кількості платформ, від вбудованих мікроконтролерів до суперкомп'ютерів.

Мінімалізм Мова С проектувалась з розрахунком на те, щоб використовуватись у системному програмуванні. Отже, Мінімалізм Мова С проектувалась з розрахунком на те, щоб використовуватись у системному програмуванні. Отже, вона не вимагає додаткового часу на виконання перевірок різноманітних умов, які ніколи не відбудуться у правильно написаній програмі, а забезпечує простий, прямий доступ до адреси будь якого об'єкта (наприклад, карти пам'яті, пристрою контролю регістрів), і вираження її джерельного коду може бути переведене у вигляд простої, примітивної машинної операції. Б’ярн Страуструп якось написав про неї: «С робить так, щоб вам було легко вистрілити собі в ногу» . Іншими словами, С дозволяє здійснення низки операцій, котрі часто є не бажаними, а тому чимало помилок у коді не виявляється компілятором, і не можуть бути очевидними під час виконання. Якщо під час програмування та підтримки програмного забезпечення не дотримуватись низки суворих правил, пізніше може виникнути немало проблем зі швидкодією, стабільністю та безпекою програмного забезпечення. (Хоча, виною подібних проблем найчастіше є програмісти, оскільки, С сама по собі забезпечує низький рівень захисту). З часом було розроблено багато утиліт для додаткових перевірок коду на наявність помилок перед компіляцією та під час його роботи. Ніщо не заважає компілятору здійснювати додаткові перевірки коду, не передбачені специфікацією мови, однак, для деякого системного програмного забезпечення вони є неприпустимими, оскільки, зменшують швидкість виконання коду. У відповідь на критику мови C, як сильно типізованої мови, Керніган та Рітчі, послались на основу філософії дизайну C: «Тим не менш, C зберігає основний принцип, який передбачає, що програмісти добре знають, що вони роблять, і вимагає лише, щоб вони чітко давали компіляторові знати про свої наміри» . [

Головні вади мови програмування Відсутність нескалярних операцій, на зразок копіювання масивів або рядків. Відсутність Головні вади мови програмування Відсутність нескалярних операцій, на зразок копіювання масивів або рядків. Відсутність автоматичного керування пам'яттю (збір сміття) Відсутня перевірка меж масиву Відсутність напів-динамічних масивів аж до С 99 Відсутність синтаксису для масивів, на зразок А. . В, котрі використовують, як старіші, так і новіші мови програмування Відсутність обробки винятків Відсутність рудиментарної підтримки модульного програмування Відсутність статичного поліморфізму у формі перевантаження функцій або операторів Відсутність підтримки об'єктно-орієнтованого програмування Відсутність вбудованої підтримки багатозадачності та роботи з мережами, хоча ці можливості забезпечуються популярними бібліоотеками Відсутність стандартних бібліотек для роботи з графікою та деяких інших бібліотек для прикладного програмування

Використання Одним із наслідків значного поширення та ефективності С є те, що компілятори, бібліотеки Використання Одним із наслідків значного поширення та ефективності С є те, що компілятори, бібліотеки та інтерпретатори багатьох інших високорівневих мов програмування реалізуються на С. С використовується, як проміжна мова деякими високорівневими мовами програмування. Це здійснюється одним із двох наступним способів: Продукується текст програми мовою C паралельно з іншим вихідним кодом: машинним, об'єктним та/або двійковим. Наприклад, така поведінка характерна для деяких діалектів мови Lisp (Lush). Продукується виключно текст на С. Приклади: Eiffel, Sather; Esterel. Вихідний текст програми на С передається компілятору С, який видає кінцевий машинний або двійковий код. Це зроблено задля переносимості (компілятори мови С існують майже для усіх платформ) і уникання необхідності розвитку специфічних для машини генераторів команд.