Денніс Рітчі Денніс Мак-Алістер Рітчі (9 вересня

  • Размер: 887.5 Кб
  • Количество слайдов: 12

Описание презентации Денніс Рітчі Денніс Мак-Алістер Рітчі (9 вересня по слайдам

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

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

 ANSI C -стандарт мови C опублікований Американським національним  інститутом стандартів (ANSI).  Дотримання цього ANSI C -стандарт мови C опублікований Американським національним інститутом стандартів (ANSI). Дотримання цього стандарту допомагає створювати легкопристосованість програми. Перший стандарт мови C був опублікований американським інститутом ANSI. Через деякий час він був прийнятий міжнародною організацією по стандартизації ISO, яка продовжила випускати наступні версії стандарту , які стали прийматися як стандарт й інститутом ANSI. Незважаючи на це стандарт досі частіше називають ANSI C , а не ISO C. С Standard 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. Вихідний текст програми на С передається компілятору С, який видає кінцевий машинний або двійковий код. Це зроблено задля переносимості (компілятори мови С існують майже для усіх платформ) і уникання необхідності розвитку специфічних для машини генераторів команд.

Версія Специфікація мови Дата. NET Framework Visual Studio ECMA ISO / IEC Microsoft C # 1.Версія Специфікація мови Дата. NET Framework Visual Studio ECMA ISO / IEC Microsoft C # 1. 0 Грудень 2002 Квітень 2003 Січень 2002. NET Framework 1. 0 Visual Studio. NET 2002 C # 1. 2 Жовтень 2003 Квітень 2003. NET Framework 1. 1 Visual Studio. NET 2003 C # 2. 0 Червень 2006 Вересень 2005 Листопад 2005. NET Framework 2. 0 Visual Studio 2005 C # 3. 0 Відсутня Серпень 2007 Листопад 2007. NET Framework 3. 5 Visual Studio 2008 C # 4. 0 Квітень 2010. NET Framework 4 Visual Studio 2010 C # 2. 0 C # 3. 0 C # 4. 0 C # 5. 0 (запланований) Нові можлив ості • Узагальнення • Змішані типи • Анонімні методи • Ітератори • Нуль-типи • Неявно типізуємі локальні змінні • Ініціалізатор об’єктів і колекцій • Автоматична реалізація властивостей • Анонімні типи • Методи-розширювачі • Запити • Лямбда-вирази • Дерева виразів • Динамічне зв’язування • Іменовані і додаткові аргументи • Узагальнена коваріантність і контрваріантність • Асинхронні методи • Компілятор як служба