Будущее си


Содержание

Будущее Си++

Усилиями фирм Microsoft и Borland программирование на Си++ выходит на новый, более высокий уровень.

Поскольку в последнее время основное внимание уделяется языку Java, кое-кто забывает о том, что Си++ продолжает оставаться «рабочей лошадкой» программистов. Две существенно обновленные версии компиляторов Си++ — VisualC++ 5.0 фирмы Microsoft и C++Builder компании Borland — отличаются поистине уникальными простотой использования и гибкостью. При разработке VisualC++ основное значение придавалось средствам для подготовки и редактирования управляющих элементов ActiveX, а создатели C++Builder сосредоточили свои усилия на средствах RAD (ускоренная разработка программного обеспечения) для программирования на Си++.

Microsoft Corp. — Microsoft VisualC++ 5.0, Enterprise Edition

Microsoft VisualC++ 5.0, Enterprise Edition (1199 долл.) — усовершенствованная версия уже известного и хорошо зарекомендовавшего себя компилятора, дополненна рядом полезных инструментов для формирования и использования управляющих элементов ActiveX.

Данная версия VisualC++ — часть программного комплекса Visual Studio фирмы Microsoft — содержит Visual Basic 5.0, обладает повышенным по сравнению с предыдущими версиями быстродействием, предусматривает целый ряд функций, обеспечивающих разработку программ масштаба предприятия, т. е. несомненно представляет превосходный вариант замены ранее имевшегос компилятора. Как обещали авторы, стоит вам извлечь из коробки и установить эту версию, и вы увидите, насколько компактнее и производительнее стали ваши программы на Си++. На наших тестах наблюдалось приблизительно 10%-ное уменьшение размера программы по сравнению с полученной при компиляции ее же с помощью VisualC++ 4.2.

Компилятор VisualC++, унаследовавший интерфейс своих предшественников, работает совместно с программой Microsoft Internet Explorer 3.0, которая автоматически инсталлируется на вашу систему в том случае, если ее не было там раньше. Необходимость этого шага вызвана тем, что основная часть сравочной системы Help и обучающих программ представлена HTML-страницами, к которым приходится часто обращаться, а имеющееся оглавление (table of contents) весьма примитивно.

В VisualC++ полностью интегрирован настоящий язык сценариев — Visual Basic Scripting. С его помощью вы можете не только составлять, редактировать и запускать макрокоманды, но даже подготавливать дополнительные модули в среде VisualC++.

На начальных стадиях разработки нового проекта вам поможет «мастер» AppWizard. Кроме такого базового набора типов объектов, как библиотека Microsoft Foundation Classes (MFC) 5.0 (которая теперь называетс Microsoft Foundation Classes and Templates), в VisualC++ предусмотрен новый, предназначенный дл построения Web-компонентов, — управляющие элементы ActiveX.

Эта библиотека, которую раньше приходилось загружать с Web-сервера фирмы Microsoft, теперь входит в состав VisualC++. По-прежнему доступны и такие старые испытанные средства, как MFC-приложения и ISAPI-объекты серверной стороны. AppWizard формирует рабочий скелет программы для любой выбранной цели проекта.

Некоторые инструментальные средства, имевшиеся в версии 4.2, значительно улучшены. Функция ClassView, обеспечивающая объектно-ориентированный просмотр ваших классов — объектов, методов и параметров, — теперь, после внесения в нее изменений, позволяет просматривать и редактировать параметры и объекты управляющих элементов ActiveX. Компилятор VisualC++ дает возможность программистам сосредоточить основное внимание на проектировании программных модулей проекта, вместо того чтобы разбираться в сложном и малопонятном синтаксисе программирования ActiveX.

Крупным достижением является и то, что с помощью функции FileView теперь можно просматривать составные части проектов. В результате появляется возможность отдельно хранить разные узлы проекта, что очень важно при коллективной разработке. В комплект поставки VisualC++ входят программы Visual SourceSafe 5.0 дл управления программами и Microsoft Repository 1.0 дл организации совместной работы с составными частями проекта внутри предприятия. Для просмотра в графическом режиме таблиц любых баз данных ODBC, предусмотрена функция DataView а с помощью функции Database View можно на ходу выполнять дистанционно отладку SQL-модулей для Microsoft SQL Server и модифицировать таблицы и их параметры.

Хотя VisualC++ содержит мощные инструменты редактирования и отладки, следует отметить, что Microsoft уделяет разработке RAD-средств меньше внимания, чем фирма Borland. Однако имеющихс инструментов вполне достаточно для тех программистов, которыми приходится иметь дело с базами данных SQL Server. Пакет VisualC++ 5.0 фирмы Microsoft с его новыми средствами для программирования ActiveX и разнообразными средствами для работы с базами данных несомненно заинтересует многих разработчиков.

Microsoft VisualC++ 5.0, Enterprise Edition
Цена, рекомендуемая изготовителем: 1199 долл.
Требуемые ресурсы: 20-Мбайт ОЗУ (рекомендуется 32 Мбайт), 180 Мбайт на жестком диске; Microsoft Windows 95 или Windows NT 4.0.
Microsoft Corp., Redmond, WA; 206-936-7329; http://www.microsoft.com/visualc

Borland International — Borland C++Builder 1.0

Продукт Microsoft VisualC++ 5.0 появился в результате дальнейшего развития традиционного компилятора Си++, в то время как при разработке пакета Borland C++Builder 1.0 (1999 долл.) основное внимание уделялось RAD-средствам.

Компилятор C++Builder унаследовал интерфейс популярной среды разработки Delphi фирмы Borland, и в его работе используется ее обширная библиотека Visual Component Library (VCL). Для применения в своих Си++-программах вы можете даже заимствовать модули на языке Pascal. Однако за это приходится расплачиватьс необходимостью иметь средства, обеспечивающие совместимость с программами, составленными для прежних версий компилятора.

Так же как и в пакете Optima++ фирмы Powersoft Corp., в C++Builder реализованы средства дл компонентно-ориентированного программирования. Вы можете не составлять программу «с нуля», а с помощью мыши переносить готовые управляющие элементы и компоновать из них программу. Вы помещаете компоненты в формы, а затем привязываете программу к этим объектам.

В C++Builder предусмотрена хорошо продуманна система для редактирования программ. Внесите вручную в программу изменения, и вы увидите соответствующие изменения в проекте. Мы обнаружили, что малейшие изменения в программе мгновенно отображаются в проекте.

В состав C++Builder входит свыше сотни управляющих элементов из библиотеки VCL пакета Delphi, а также элементов ActiveX/OCX. В числе средств из библиотеки VCL и такие стандартные компоненты Windows, как управляющие элементы ListView и TreeView. Однако исключительное достоинство библиотеки VCL — наличие управляющих элементов для построения баз данных, начиная от таких непременных элементов, как grid (сетка), image (образ), text (текст) и поля memo (текстовое поле большой длины), и кончая объектами, предназначенными для управления базами данных в рамках сеанса, а также из таблиц, запросов и даже хранимых процедур. Кроме того, имеются сетевые элементы дл управления общепринятыми протоколами Internet — FTP, HTML, NNTP, POP, SMTP, TCP и UDP.

В комплект поставки продукта включено несколько наглядных примеров уже готовых элементов ActiveX. Модуль Object Inspector будет служить как бы командным пунктом. Мы использовали его для поиска форм и других объектов, затем для задания их параметров и при разработке приложений для привязки программы к обработчикам событий. В процессе тестирования мы убедились, что интерфейс пакета так же хорошо продуман и полнофункционален, как интерфейс среды Delphi.

Компилятор C++Builder разработан в полном соответствии со спецификацией ISO C++, в том числе и в отношении средств для работы с библиотекой Standard Library. Отметим лишь один существенный недостаток — иногда непросто обеспечить преемственность программ; теоретически унаследованные программы компилируются, но, как только дело доходит до обращения к VCL, приходится заново продумывать проект и, как правило, всерьез перерабатывать программу. Для того чтобы провести тест на производительность Си++-программ, нам пришлось приложить некоторые усилия по адаптации нашего непредусматривающего обращений к VCL проекта, чтобы он работал в среде C++Builder.

C++Builder (подобно Delphi) — превосходное средство для разработки баз данных. Вы можете строить запросы и связывать их с формами и управляющими элементами, практически не прибегая к программированию. Составлять программы вам помогут «мастера», предусмотренные дл всех средств пакета, кроме этого, обеспечиваетс возможность визуального проектирования форм с активными данными. Совсем не обязательно хорошо знать язык SQL, для того чтобы сразу начать эффективную работу с этим пакетом. C++Builder — это первый продукт, который позволяет программирующим на Си++ воспользоваться всеми возможностями среды Delphi и других популярных RAD-средств.

Borland C++Builder Client/Server 1.0
Цена, рекомендуемая изготовителем: 1999 долл.; модернизация предшествующей версии 300 долл.
Требуемые ресурсы: 16-Мбайт ОЗУ (рекомендуется 24 Мбайт), 130 Мбайт на жестком диске; Microsoft Windows 95 или Windows NT 3.51 либо 4.0.
Borland International Inc., Scotts Valley, CA, 408-431-4122; http://www.borland.com

Лабораторные испытания. Компиляторы Си++

При выполнении наших тестов компилятор Microsoft VisualC++ 5.0 по своим показателям неизменно превосходил пакет Borland C++Builder Client/Server Suite 1.0. На тестах Encryption и Decryption измерялась производительность при выполнении шифрования и дешифрования 60-Кбайт файла в памяти с использованием классов Си++. На тесте Executable Size оценивалс размер полученного в результате исполнимого файла тестируемой программы. Для сравнения здесь приведены результаты испытаний пакета Microsoft VisualC++ 4.2.


Encryption
Число итераций за 30 с

Decryption
Число итераций за 30 с

Забытое будущее (СИ)

Мария Трещёва

Боевая фантастика

Легенды Мегаса

В жизни или смерти человек всегда один….

М-да. Как нельзя кстати… Ей было и без того грустно, поэтому она очистила плейлист. Размышлять о смысле песен не особо хотелось, потому палец Виктории ткнул в папку с зарубежным рок-ассорти. Системник снова заворчал (надо бы его почистить). Заиграла мелодичная баллада.

Поднявшись на «жилую» половину квартиры, она заметила, что книжные полки были покрыты слоем пыли словно серым бархатом. Надо бы сделать уборку, но не сейчас.

Единственная межкомнатная дверь вела в ванную. Именно к ней, по пути прибавив громкость и захватив чистое полотенце, она и направилась.

Цитата из книги Забытое будущее (СИ)

Future Simple — простое будущее время

Время Future Simple ссылается на действие, которое совершится в неопределенном или отдаленном будущем.

Простое будущее время в английском языке обычно используется с обстоятельствами:

Образование Future Simple

I will play We will play
You will play You will play
He / she / it will play They will play
Will I play? Will we play?
Will you play? Will you play?
Will he / she / it play? Will they play?
I will not play We will not play
You will not play You will not play
He / she / it will not play They will not play

Для того, чтобы поставить глагол во временную форму Future Simple, нужно использовать его начальную форму и вспомогательный глагол will. В устной речи will чаще всего сокращается до формы ‘ll, которая может использоваться во всех лицах.

Ранее при употреблении будущего времени для первого лица (I, we) было принято использовать вспомогательный глагол shall:

Однако, в современном английском, особенно в устной речи, will стал использоваться для всех лиц:

Глагол shall в настоящее время используется довольно редко в качестве модального глагола в предложении что-то сделать или помочь:

В вопросительном предложении вспомогательный глагол will ставится перед подлежащим. Значимый глагол остается после подлежащего в своей начальной форме:

В отрицательных предложениях за вспомогательным глаголом следует отрицательная частица not. Вместе они могут быть сокращены до формы won’t:

Светлое будущее


  • 1917

Скачать книгу в формате:

Аннотация

Земля, 2059 год. Планета изолирована от космоса, больше нет выхода за атмосферу, человечество ведёт войны за ресурсы и чистые от радиации территории, хаос и анархия охватили весь мир. Человечество на грани гибели, сотовая связь, как и интернет, отсутствует, на поражённых территориях бродят видоизменённые существа, последние отголоски человеческого вида сидят в изолированных от этого страшного мира городах, запасы продуктов и медикаментов медленно кончаются, это начало, конца.

Осторожно, не вычитано!

Отзывы

Популярные книги

  • 30255
  • 8

Annotation Войско Чингисхана подобно вулканической лаве сметало на своем пути все живое: истре.

Жестокий век

  • 31355
  • 1

В магазинчике «Народный промысел» в селе Сокольничьем найдена задушенной богатая дама. Она частен.

Селфи с судьбой


  • 29293
  • 1

Прошло пять лет после событий «Орудий смерти», когда Нефилимы стояли балансируя на грани забвения и .

Леди полночь (ЛП)

  • 28688
  • 2
  • 4

Знаете ли вы, что такое свобода? Недостижимая, как загадочный храм Верховной в древних Альских г.

Мое проклятие: Право на счастье

  • 29229
  • 4
  • 7

В книге привычным для мужчины понятным и логичным языком описаны и объяснены природа женщин, особен.

Женщина. Учебник для мужчин

  • 45140
  • 1
  • 12

Мягкий порыв ветра принес с собой запах морской соли и йода… уже пора в путь! Но сколько еще осталос.


Господство клана Неспящих — 7

Приветствуем тебя, неведомый ценитель литературы. Если ты читаешь этот текст, то книга «Светлое будущее» Усцелемов Андрей Александрович «Logan Miller» небезосновательно привлекла твое внимание. Произведение, благодаря мастерскому перу автора, наполнено тонкими и живыми психологическими портретами. Не остаются и без внимания сквозные образы, появляясь в разных местах текста они великолепно гармонируют с основной линией. С помощью намеков, малозначимых деталей постепенно вырастает главное целое, убеждая читателя в реальности прочитанного. Чувствуется определенная особенность, попытка выйти за рамки основной идеи и внести ту неповторимость, благодаря которой появляется желание вернуться к прочитанному. На развязку возложена огромная миссия и она не разочаровывает, а наоборот дает возможность для дальнейших размышлений. Юмор подан не в случайных мелочах и не всегда на поверхности, а вызван внутренним эфирным ощущением и подчинен всему строю. По мере приближения к исходу, важным становится более великое и красивое, ловко спрятанное, нежели то, что казалось на первый взгляд. Написано настолько увлекательно и живо, что все картины и протагонисты запоминаются на долго и даже спустя довольно долгое время, моментально вспоминаются. Обильное количество метафор, которые повсеместно использованы в тексте, сделали сюжет живым и сочным. Через виденье главного героя окружающий мир в воображении читающего вырисовывается ярко, красочно и невероятно красиво. «Светлое будущее» Усцелемов Андрей Александрович «Logan Miller» читать бесплатно онлайн, благодаря умело запутанному сюжету и динамичным событиям, будет интересно не только поклонникам данного жанра.

  • Понравилось: 0
  • В библиотеках: 0
  • 1917

Новинки

Фикрайтер-слешер, да к тому же законченная снейпоманка, попавшая во вселенную ГП — банально и изби.

Назад в будущее (СИ) — Поселягин Владимир Геннадьевич — Страница 1

Старик стоял напротив, и недовольно рассматривая меня, ожидал ответа на свой возмущённый вопрос. Про то, что я спас его от скинов он, похоже, успел позабыть.

— Ага, — ухмыльнулся я, заканчивая с наградами, и меняя магазин в пистолете. — Так бы я тебе и сказал. Сразу бы побежал историю править. А оно мне надо? Я тебе говорил, помнишь ту букашку? Нельзя вмешиваться в историю.

— Всё равно нехорошо.

— Ну этот теологический спор мы оставим на потом. Как сам? Это ты меня почитай больше пяти десятков лет не видел, для меня прошло всего несколько часов, так что интересно как ты жизнь прожил. Работорговцы с тобой не связывались?

— Было дело, — скривился, старик, быстро стреляя глазами, оглядевшись. — Идём отсюда, сейчас милиция приедет. Все силы стянут на твою стрельбу, поговорить не дадут.

Мы направились к углу здания, многие из прохожих, что стали свидетелями данного происшествия, провожали нас взглядами, да и становилось их всё меньше и меньше. Умные, а главное опытные, не хотели влезать в это дело, да и я в своём спортивном костюме и короткой стрижкой напоминал типичного быка, а сейчас они в немалом авторитете.

Илон Маск рекомендует:  Управление сценариями просмотра web страниц

Именно в этом здание, которое мы огибали, и жил Алексей. Адрес не совпадал с тем, что был у него в письмах, вернее номер дома, улица та же, но я не особо удивился. Сам дом можно считать элитным, сталинской постройки с высокими потолками. Такие давали чиновникам, которые стояли достаточно высоко. Рассматривая дом, я покосился на идущего рядом достаточно бодрого спутника и поинтересовался:

— Войну кем закончил, полковником? А на пенсию кем вышел? Небось, генералом? — при последних словах я ехидно ткнул его локтём в бок.

— Угадал, войну действительно полковником закончил. Командиром танковой дивизии.

— Подожди, — остановил я его, отойдя к своей «девятке», достал с заднего сиденья рюкзак, к которому была прикреплена импульсная винтовка, а так же спортивную сумку. Уже местную, в ней были все трофеи, включая оружие. Тоже местное.

— Ну вот и всё, — вернулся я к нему. — Идём.

— Машина откуда? — поинтересовался тот, когда мы повернули к дверям подъезда.


— Трофей. У братков отобрал, — достаточно коротко прояснил я. Старику этого хватило, сам додумал остальное.

Раскланявшись с бабульками, я следом за Алексеем, ну вот не могу его на вы называть, для меня он так и остался тем вихрастым лейтенантом из прошлого, прошёл в лифтовой холл и двинул к лестнице, как и хозяин квартиры, проигнорировав лифт. Он тут был. Мы поднялись на четвёртый этаж, где мой спутник открыл ключом запор и прошёл в большую прихожую, пропуская меня.

— Немного пыльно. Как моя хозяйка две недели уехала на дачу, так и прибраться некому. Внучка иногда только забегает.

— Ага, — усмехнулся я. — А тебе генеральское достоинство тряпкой не даёт поработать?

Старик предпочёл сделать вид, что не слышал меня, как и смешка. Сняв уличную обувь и пиджак, повесив его на вешалку, тот, шаркая пятками тапок, направился на кухню, продолжая держать в руках авоську с покупками. Та пережила и нападение скинов, и моё появление, поэтому открыв холодильник, Алексей стал выкладывать продукты на полки. Да и было их там, как я заметил не так и много. Пакет молока, с десяток яиц, сыр, и полкруга сырокопчёной колбасы. Видимо деньжата у генерала водились, раз может покупать такие продукты, да ещё в такое время. Сама квартира у Алексея оказалась приличной, четырехкомнатной. Пыли, на которую тот сетовал, я как-то не заметил, а так заметно ухоженной она была. Видимо хозяйка у генерала действительно была в наличии, не вдовец.

Свои вещи я занёс в комнату с собой, в гостиную. Она была просторной, так что мы с удобством устроились за круглым столом, и пока чайник на кухне закипал, стали общаться. Про себя я мало говорил, раз и тут, особо и сказать нечего, планы тем более не выдавал, а вот слушал Алексея с немалым интересом.

— … тогда повезло, был санитарный эшелон и шёл он на Москву. В общем, меня как тяжёлого отправили в столицу, прямо в поезде сделав операцию. Тяжело было, хорошо родители, узнав на четвёртый день, что я тут же, в Москве, приехали, мама помогала ухаживать. Только из-за неё выкарабкался. Часто прокручивал тот мой первый бой. Стыдно. Тогда было стыдно и сейчас. На одной силе воли и помощи родителей выкарабкался. Надо сказать это было моё первое и последнее ранение. Дальше всю войну до Берлина ни одного ранения не получил. Про лёгкие, то есть царапины я не говорю. Без них никак. Тем более танкисту… — старик вздохнул и, прервавшись на пару минут, сходив на кухню и вернувшись с подносом, где стояли кружки и чайник, а также вазочка с печеньем, снова устроился напротив и продолжил. — Ты как-то спросил, не находили ли меня работорговцы. Я правду сказал, нашли.

Хрумкая на удивление вкусным печеньем я с немалым интересом слушал того, делая мелкие глотки чая, настоящий в крутую сваренный кипяток.

— … очнулся, стоят надо мной, на своём языке говорят. Снаружи ночь, в палате темень, однако трое других раненых, что у меня в палате лежали, не проснулись. Те голос не повышали, но не опасались, что их услышат. Мне уже легче было, так что мама моя на тот момент дома была, санитарок тоже в палате не было. Ночь. Я сразу понял кто они, хотя видел только силуэты. Потом они мне ввели какое-то средство, укололи в шею, что за препарат не знаю, и стали допрашивать. Насчёт тебя вопросы задавали, правильные. Всё что знал, сказал. Не мог никак противиться, наверное тот препарат действовал.

— А то, что я планировал нашу будущую встречу? — заинтересовался я с некоторой тревогой. Работорговцы и маркер могли поставить на нашу встречу.

— Про это нет. Отвечал только на конкретные вопросы, химия их так действовала, а такой вопрос они не задавали. Узнав всё, что им нужно, они ушли. Даже сеть не выключили, видимо не посчитали нужным. Ох как я их благодарил потом за это дело… Из госпиталя я вышел с наградой, получил медаль за «Отвагу». Это меня комбат наградил за бой с диверсантами. В госпитале уже награждали, повезло, что бумаги дошли куда надо. Редкий случай. Что с батальоном я узнал только после войны. Сгинул во время следующего наступления немцев. Бросили в лобовую атаку на наступающие колонны, что прорвались в наши тылы. Все коробочки пожгли. Встречал я позже очевидцев… Когда вышел из госпиталя как раз началось зимнее наступление под Москвой. Нас до выписки чуть не эвакуировали, так что знал, что немцы у столицы стоят. Попал в первую гвардейскую таковую бригаду Катукова. Про него уже не раз по радио говорили, так что я поминал про него с твоих слов. Попал во второй батальон. Частично он был вооружён «тридцатьчетвёрками», которые я, честно говоря, не знал, но часть были «двадцатьшестыми» с ремонта. Вот там я и получил роту. Семь танков под началом было. Уже через четыре дня после госпиталя, только освоился как первый бой. Участвовал в боях по уничтожению Истринской группировки немцев. Хорошо сидели, я там два танка потерял, один вместе с экипажем… Нейросеть действительно очень хорошо помогала, это я тебе как опытный пользователь скажу. Во время кратких отдыхов или стоянок я все силы бросил на изучение «КВ» и «тридцатьчетвёрок». После того как наступление под Москвой заглохло, это пригодилось. Бригада была отведена на переформирование и пополнение. Там я получил звание старшего лейтенанта, орден «Красной Звезды» и роту «КВ» под командование… Ты советовал пойти в штабные. Поначалу как-то не сложилось, всё в боевых частях. Харьковскую катастрофу застал капитаном, командиром тяжёлого батальона, с двумя орденами и двумя медалями на груди. Было за что. Мы кончено не были на острие удара, но немалая тяжесть немецкого прорыва легла и на нас. Мой батальон держал переправу и держал крепко. Три дня держал. Двадцать две атаки, как мы потом насчитали, выдержали. Когда переправа потеряла своё значение, ночью смогли два оставшихся «КВ» на понтонах переправить на наш берег. Остальные были потеряны в бою, те что не горели мы сами поджигали чтобы они врагу не достались. Не смотря на то, что обе машины были повреждены, у одной так башня была заклинена, но ходовая в порядке, а так же что часть личного состава сохранил, и позволило мне избежать трибунала. За эту оборону я орден «Боевого Красного Знамени» получил. Да и заметка была, ещё бы, перед позициями моего батальона немцы оставили почти сотню своих танков, сгоревшие и подбитые. Над позициями было сбито восемнадцать самолётов. Это точно, с учётом того что семь я лично сбил из «ДШК». К концу войны мастером-зенитчиком стал. Даже «фокеры» ссаживал к изумлению подчиненных. Тут я тоже прославился, как уникальный специалист.

БУДУЩЕЕ ЯЗЫКА СИ

БУДУЩЕЕ ЯЗЫКА СИ

Язык Си уже занимает доминирующее положение в мире мини-компьютеров, работающих под управлением ОС UNIX. Сейчас он распространяется на область персональных ЭВМ. Многие фирмы, производящие программное обеспечение, все чаще обращаются к Си, как к удобному языку для реализации своих проектов: программ обработки текстов, составления крупноформатных таблиц, компиляторов и т. д., поскольку известно, что Си позволяет получить компактные и эффективные программы. Что еще важнее, эти программы могут быть легко модифицированы и адаптированы к новым моделям ЭВМ.

Другой причиной, способствующей проникновению Си в программное обеспечение персональных ЭВМ, является желание пользователей, работающих в системе UNIX, отлаживать свои программы дома. Поскольку уже созданы варианты компилятора с языка Си для некоторых моделей персональных ЭВМ, пользователи имеют возможность это делать.

По нашему мнению, то, что подходит для фирм и программистов с большим опытом работы на Си, хорошо и для остальных пользователей. Все больше и больше программистов останавливают свой выбор на языке Си, чтобы воспользоваться его преимуществами. Поэтому вам совсем не обязательно быть. профессиональным программистом, чтобы следовать их примеру.

Короче говоря, Си суждено стать одним из наиболее важных языков программирования в 80-90-е годы. Он уже применяется на мини-компьютерах и персональных ЭВМ. Он используется фирмами, производящими программное обеспечение, студентами, обучающимися программированию, и различными энтузиастами. И если вы хотите работать в сфере программотехники, то один из первых вопросов, на который вы должны будете отвечать «да», — «Умеете ли вы программировать на Си?».

Похожие главы из других книг

13-Я КОМНАТА: Настоящее будущее

Прекрасное будущее Ефремова

Прекрасное будущее Ефремова Чем дальше, тем больше меня восхищает замечательный советский писатель-фантаст Иван Ефремов. Читая его, я был уверен, что открываю нечто совершенно забытое; но потом оказалось, что множество моих знакомых в последнее время вспоминают его или

Будущее — в прошедшем времени

Будущее — в прошедшем времени Наше отставание в области микроэлектроники от мирового уровня в 60-е годы оценивалось примерно в 5 лет. Так первый планарный транзистор был создан в НИИМЭ в отделе Е.П. Дробышева в 1965 г. (через 6 лет после американской фирмы Fairchild Semiconductor). Именно

Назад в будущее

Назад в будущее Введение Могло ли действительно пройти четыре года с тех пор, как я написал четырнадцатую главу этой серии? Действительно ли возможно, что шесть долгих лет прошли с тех пор как я начал ее? Забавно, как летит время когда вы весело его проводите, не так ли?Я не


Взгляд на будущее Интернета

Будущее Yahoo!

ГОЛУБЯТНЯ: Назад в будущее

ГОЛУБЯТНЯ: Назад в будущее Автор: Сергей ГолубицкийЗавершаем тематику Rockbox — альтернативной операционной системы для цифровых джукбоксов Archos, iRiver и iPod.После установки ROCKbox H300 Experimental, специализированного порта для iRiver H340, алгоритм которой мы разобрали на прошлой неделе,

Прошлое и будущее

Прошлое и будущее Автор: Дмитрий ШабановОчередная условная граница… Что-то быстро они мелькать стали: только привык, ставя дату, выводить «2007», а не, скажем, «2002» или «2005», как уже нужно привыкать к «2008»! Какие-то года стали недолговечные…Чем запомнится заканчивающийся год?

20 Будущее: опасности и перспективы

20 Будущее: опасности и перспективы Наилучший путь предсказать будущее — создать его. Фраза на собрании в XEROX PARC в 1971 году —Алан Кей (Alan Key) История не окончена. Unix продолжает расти и развиваться. Сообщество и традиции вокруг операционной системы Unix продолжают развиваться.

1.4. Заглядываем в будущее

1.4. Заглядываем в будущее Но и хваленая мудрость Востока не беспредельна, рано или поздно веб-дизайнерам придется отказаться от восточной традиции, склонной к абстрактному умствованию, в пользу какой-нибудь новой, имеющей практические результаты. И как мне кажется,

20 Будущее: опасности и перспективы

20 Будущее: опасности и перспективы Наилучший путь предсказать будущее — создать его. Фраза на собрании в XEROX PARC в 1971 году —Алан Кей (Alan Key) История не окончена. Unix продолжает расти и развиваться. Сообщество и традиции вокруг операционной системы Unix продолжают развиваться.

Два языка внутри одного задания (использование функции InputBox языка VBScript в сценариях JScript)

Будущее АВАР/4 как универсального языка программирования

Будущее АВАР/4 как универсального языка программирования Программы, созданные на языке АВАР/4 и в связанных с ним средах разработки, таких, как АРМ Разработчика АВАР/4, Панель управления АРМ Разработчика и Базиса R/3, приспособлены для работы с любой операционной системой,

Будущее

Будущее Я очень надеюсь, что эта быстрая прогулка вокруг HTML5 сподвигла вас захотеть начать изучать эту страшно интересную технологию. Я также надеюсь, что вы дадите знать WHATWG о плодах, которые это изучение принесет.HTML – самый важный инструмент, которым владеет

Будущее разработчика в тестировании

Будущее разработчика в тестировании Если коротко, то мы думаем, что у разработчиков в тестировании нет будущего. Все-таки они — разработчики, и точка. Google платит им как разработчикам и оценивает их результаты по тем же критериям, что и разработчиков. Они даже называются

Будущее инфраструктуры тестирования

Будущее инфраструктуры тестирования Инфраструктура тестирования в Google все еще клиентская. Множество тестов Selenium и WebDriver, написанных на Java или Python, хранится в репозитории, собирается и разворачивается на выделенных виртуальных машинах с помощью shell-скриптов.

Электронная библиотека
BooksBurg.net

Лаура Тонян
«СОЗДАВАЯ БУДУЩЕЕ»

Четыре месяца спустя…

— Мистер Хилл, для начала я бы хотела вас поблагодарить за то, что согласились дать интервью нашему каналу,- мило щебечет молоденькая брюнетка, сидя на стуле напротив меня.

Её имя – Роза Киндсберг. Она – корреспондент центрального канала нашего штата. Полгода девушка забрасывала меня письмами, и мучила звонками. Сейчас я готов ответить на все их вопросы. Почти все…


— Весь к вашим услугам,- улыбаюсь, почёсывая подбородок.

— Отлично,- она потирает ладони, словно готова наброситься на меня. Словно, я чёртов ланч. Берёт планшет с бумагами в руки, кладёт его себе на колени, закидывая ногу на ногу.- Ну, так что ж, начнём. Скажите,- пауза,- как вы думаете, что для вашей компании значит сотрудничество с известной косметической фирмой «For Women»?

Я осмысливаю её вопрос, прежде чем ответить:

— Это огромный шаг вперёд, — важно качаю головой, стараясь не смотреть в камеру, что нацелена прямо на меня.- Это огромный шанс для «Paradise» вырваться за рамки Калифорнии. И, может случиться, в будущем нас ожидают более выгодные контракты,- развожу руками, всё ещё улыбаясь.

— Угу,- Роза опускает глаза на бумаги. Её губы беззвучно шевелятся.- А что на счёт «The Kiss»?

Она устремляет свой взгляд на меня. Внимательно сканирует. Подушечки моих пальцев вжимаются в чёрные брюки. Я чувствую свою плоть. Опускаю глаза вниз. Раздражённость из меня готова вырваться, но я всё контролирую. Я должен. Я должен.

— Мистер Хилл? – говорит Роза, и я осознаю, что молчал слишком долго.

— Да? – спрашиваю, как будто, не понимаю, о чём идёт речь.

— Вы слышали последний вопрос?

— Вы так и не задали его,- скрещиваю пальцы рук.

— Нет,- нервно усмехается корреспондентка.- Я задала.

— Вы спросили, что на счёт «The Kiss», так?

— Но это ведь не вопрос. Я не понял, что вы именно имеете в виду.

Она сглатывает, заправляя прядь тёмных волос за ухо, и вновь прячет взгляд за длинными ресницами.

— Вы пытаетесь меня смутить? – улыбается.

Она, наверное, невероятно счастлива, что мы не в прямом эфире. Я не хочу отвечать на последний вопрос.

— Ни в коем случае,- практически шепчу.

Мы некоторое время переглядываемся, Роза явно недовольна происходящим.

Но я не даю ей продолжить. Говорю резко:

— Я разорвал контракт, проработав с «The Kiss» всего несколько месяцев, хотя должен был – год.

— Почему вы это сделали?

Илон Маск рекомендует:  Что такое код error_reporting

Моё терпение не безгранично. Я скоро его потеряю, и тогда плохо будет всем.

Я вскакиваю на ноги, застёгивая пуговицы на тёмном пиджаке, и направляюсь вдоль синей стены.

— Мистер Хилл! – кричит мне вдогонку журналистка.

Я иду быстро, уверенно. Какого чёрта я согласился на это интервью?!


— Мистер Хилл,- Роза каким-то странным образом догоняет меня, и преграждает мне путь своей миниатюрной фигурой.- Пожалуйста,- её ладони сложены вместе.- Мы ждали этого так долго. Вы не можете вот так уйти.

— О,- я зло смеюсь.- Ещё как могу. Вы задаёте не те вопросы, мисс Киндсберг.

— О чём вы говорите? – Она морщится.- Моя работа заключается в том…

— Ваша треклятая работа заключается в том, чтобы…- перебиваю я, но замолкаю, не зная, что сказать. Тяжело вздыхаю. – Давайте устроим встречу через неделю. Пожалуйста.

Роза поглаживает длинную косу, выглядя растерянной. Она не хочет соглашаться, но выбора у неё нет.

— Хорошо,- закатывает глаза.- Ладно. Но мистер Хилл, я вас очень прошу, не подводите меня.

— Да, я понял,- сглатываю. – До встречи.

Стремглав, выхожу из огромного здания, сажусь в свою Infiniti Q 30, которую купил недавно и со скоростью света еду в офис. Я встречаю на входе нескольких секьюрити, они собираются мне что-то сказать, но я делаю взмах рукой, давая понять: тревожить сейчас не стоит.

Добираюсь на лифте до нужного этажа, и, не оглядываясь на Вэнди, захлопываю дверь за собой, оставаясь один здесь, в своём кабинете, в своём мире. Без неё… Без той, что украла моё сердце…

Бойсе, штат Айдахо

Я закрываю за собой входную дверь, с интересом глядя на Елену и Эштона. Они ждут меня. Достаю из сумки конверт и бросаю его Эштону. Он ловит.

— Вот,- скриплю зубами,- убедись. Я же говорила, это не твой ребёнок. Будто, я стану обманывать о сроках беременности,- бурчу, как бы, придерживая снизу девятимесячный большой живот.

Эштон раскрывает конверт и, вздыхает отчаянно, утверждаясь в моих словах.

Он надеялся, что во мне его ребёнок?

— Погодите-ка,- Елена выставляет одну руку вперёд, её лицо вытягивается от удивления.- Что значит, «убедись, это не твой ребёнок»? — повторяет мои слова.

— Эммм. — я краснею. Чёрт, я же не откровенничала с ней на счёт этого.

— У вас обоих был секс? — восклицает подруга, прислонившись к шкафчику на моей кухне.- Боже! — Она охает.- Когда?

Елена притягивает меня к себе.

— Рассказывай! Как это было? У него большой?

— Эй!- Эштон машет нам одной рукой, другой упирается о кухонный гарнитур. Его лодыжки скрещены. — Я, вообще-то, здесь стою!

Елена невозмутимо скрещивает руки на груди и с вызовом поднимает глаза на парня.

— Хорошо, — пожимает плечами.- Большой член?

Я охаю от потрясения. Хорошо, что моих родителей нет дома.

Будущее языка Си

Многие фирмы, производящие программное обеспечение, все чаще обращаются к Си как к удобному языку для реализации своих проектов, поскольку известно, что Си позволяет получить компактные и эффективные программы. И эти программы могут быть легко модифицированы и адаптированы к новым моделям ЭВМ! Языки программирования как С++, Java, С#, UML и т.д. имеют «сишную» семантику. Си используется фирмами, производящими программное обеспечение, студентами, обучающимися программированию. И если вы хотите работать в сфере программотехники, то один из первых вопросов, на который вы должны будете отвечать «Да» — это вопрос «Умеете ли Вы программировать на Си?»

Использование языка Си


Си — язык компилируемого типа. Пример языков компилируемого типа: Паскаль, Фортран. Пример языков интерпретируемого типа: Бейсик, Лого. Чтобы дать первое представление о процессе создания программы, приведем упрощенную схему того, что необходимо сделать — начиная от написания программы и заканчивая ее выполнением.

  1. Для создания программы на языке Си используйте редактор текстов.
  2. Попробуйте скомпилировать вашу программу с помощью удобного для вас компилятора. Компилятор проведет проверку правильности вашей программы. Если компилятор обнаружит ошибки в вашей программе, он выдаст сообщение об этом. Если ошибок не будет, компилятор выполнит перевод программы на внутренний язык ЭВМ, и поместит результат в новый файл.
  3. Набрав имя этого нового файла на клавиатуре, вы можете запустить программу.

В некоторых вычислительных системах второй этап может быть разбит на два или три шага.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 9791 — | 7666 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Летопись языков. Си

Язык Си не имеет смысла представлять особо. За три десятилетия своей жизни он покорил сердца не одного миллиона программистов всего мира.

Си — это инструмент, острый, как бритва:
с его помощью можно создать
и элегантную программу, и кровавое месиво.
Брайан Керниган

На языке Си было создано такое количество программного обеспечения, с которым сравниться не может, пожалуй, ни один другой язык. История Си полна мифов и ложных стереотипов. Один из самых распространенных — авторство языка. Многие зачастую допускают одну и ту же ошибку, причисляя Брайана Кернигана к числу разработчиков Cи. Он не участвовал в создании языка, но был активным его популяризатором и в соавторстве с Деннисом Ритчи написал бестселлер «Язык программирования Си» [1]. Впрочем, разве дело в мифах? Гораздо важнее понять, с чем связан небывалый успех Си, в чем секреты его долголетия и какое будущее ему уготовано? На эти вопросы мы и попробуем найти ответ, обратившись к страницам истории.

Истоки языка Си

Язык Си, как и любой другой, зародившийся в ходе эволюции программирования, появился не на пустом месте. У него были свои предшественники, изучая которые можно отыскать ключ к разгадке свойств и механизмов Си.

Сама атмосфера 1960-х годов способствовала возникновению чего-либо подобного. Питер Мойлан так пишет об этом [2]: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода. Это привело к появлению концепции машинно-ориентированных языков промежуточного уровня. Надо признать, что Си был не единственным подобным языком и уж никак не самым первым. В сущности, в это время машинно-ориентированные языки стали появляться, как грибы после дождя. Все они походили один на другой, как члены единой семьи, но вовсе не потому, что авторы списывали их друг у друга, а потому, что они были под влиянием одних и тех же идей, витавших в то время в воздухе».

Главным прародителем языка Си стал BCPL. Его разработал Мартин Ричардс, когда в 1966-1967 гг. посещал Массачусетский технологический институт (MIT). Это была несколько упрощенная версия языка CPL (Cambridge Programming Language). Первоначально компилятор BCPL был реализован для операционных систем GECOS и MULTICS, работавших на компьютерах компании General Electric моделей GE-635 и GE-645 соответственно. BCPL использовался для реализации операционной системы TRIPOS, которая впоследствии была положена в основу AmigaDOS. Близким по духу к BCPL является язык BLISS (Basic Language for Implementation of System Software), созданный Биллом Вульфом в университете Карнеги-Меллон в 1969 г.

В 1969 г. Дуг Макилрой реализовал язык TMG (Макклар, 1965), придуманный специально для создания компиляторов. Кен Томпсон, вдохновленный работой Макилроя, решил, что для операционной системы UNIX (правда, тогда она еще так не называлась) нужен свой язык системного программирования. После нескольких неудачных экспериментов с Фортраном он создал такой язык и назвал его B (Би). По сути, B* — это синтаксически видоизмененный BCPL, который Томпсону удалось втиснуть в 8 Кбайт памяти. Почему же он получил такое имя? Существует две гипотезы его происхождения: от начальной буквы либо BCPL, либо другого языка Томпсона — Bon, названного в честь его жены Бонни.

Многие знают о том, что компилятор языка Си был написан на самом Си (подобно тому, как несколько раньше группа Никлауса Вирта реализовала компилятор Паскаля [3] на Паскале). Однако гораздо менее известен тот факт, что его создатели во многом пошли по следам компилятора языка B, который был написан Кеном Томпсоном на самом B. В результате работ Макилроя появился компилятор компиляторов TMGL. С его помощью была проведена программная раскрутка (bootstrapping) сначала языка B, а затем и Си. Иными словами, компиляторы для этих языков были написаны на тех же самых языках.

Компилятор языка B впервые появился на компьютере PDP-7, где он генерировал не машинные инструкции, а шитый код — интерпретационную схему, где компилятор генерирует последовательность адресов, обозначающих фрагменты кода. Эти фрагменты и производят элементарные операции. В случае компилятора B операции выполнялись на простой стековой машине. Важным технологическим достижением группы, куда входили Томпсон и Ритчи, стал кросс-компилятор языка B: он был написан на самом B, работал на 18-разрядной PDP-7, генерировал код для 36-разрядной GE-635 и при этом умещался в 4 тыс. слов памяти PDP-7. Интересно, что у языка B первый компилятор занимал объем памяти 8 Кбайт, а у языка Си — 16 Кбайт.

Связанные родственными узами, языки BCPL, B и Си различаются синтаксисом, хотя и имеют общий фундамент. Они ориентированы на системное программирование. Написанные на них программы состоят из последовательности глобальных описаний и описания функций (процедур). Причем в BCPL процедуры могут быть вложенными, а в B и Cи — нет. В отличие от своих потомков, BCPL имел очень широкий набор управляющих конструкций: if-then, test-then-else, unless-do, while-do, until-do, repeat, repeatwhile, repeatuntil, for-to-by-do, loop, break, switchon-into-case-default-endcase. Языки BCPL и B — бестиповые (т. е. не имеют типов), они работают со словом (ячейкой памяти), содержащим фиксированное число разрядов (битов), а память ими рассматривается как линейный массив слов, где значение ячейки памяти можно интерпретировать как индекс в этом массиве. Для всех этих целей BCPL использует оператор «!», а язык B — оператор «*».

Кен Томпсон (слева) и Деннис Ритчи в начале 1970-х годов за знаменитой PDP-11

Деннис Ритчи вспоминает [4]: «В 1971 г. я начал расширять язык B, добавляя тип сhar, а также переписал его компилятор таким образом, чтобы он впрямую генерировал инструкции для PDP-11, а не шитый код. Таким образом, переход от B к Си происходил одновременно с созданием компилятора, способного порождать достаточно быстрые и компактные программы в сравнении с языком ассемблера. Я назвал несколько расширенный язык NB — «новый B» (new B). В язык NB Ритчи ввел первые типы: int и char. Вместе с массивами и указателями они составили его систему типов.

Откуда же появилось название Си? Ритчи разъясняет это так: «Создав систему типов, соответствующий синтаксис и компилятор для нового языка, я почувствовал, что он заслуживает нового имени: NB показалось мне недостаточно четким. Я решил следовать однобуквенному стилю и назвал его C (Си), оставляя открытым вопрос, являлось ли после B это следующей буквой в алфавите или в названии BCPL».

Си, UNIX и PDP-11

Успех Си был неразрывно связан с тем, что в одном месте в одно и то же время появились сразу три грандиозных творения, ставших культовыми: язык программирования Си, операционная система UNIX и мини-компьютер PDP-11. (В Советском Союзе аналогом PDP-11 были семейства СМ-4 и СМ-1420.) За прошедшие десятилетия PDP-11 и сменивший его VAX-11 уступили место более совершенным техническим решениям, но Си и UNIX продолжают оставаться на передовых позициях программной индустрии. Они связаны друг с другом столь тесно, что невольно хочется перефразировать слова Маяковского: мы говорим «Си», подразумеваем «UNIX», мы говорим «UNIX», подразумеваем «Си».

Связка Си—UNIX во многом отразила творческий союз Ритчи и Томпсона. Кен Томпсон считает: «Наше сотрудничество было образцом совершенства. За те десять лет, что мы проработали вместе, можно вспомнить только один случай нескоординированной работы. Я тогда обнаружил, что мы написали одинаковую ассемблерную программу из 20 строк. Я сравнил наши тексты и поразился, обнаружив, что они совпадают посимвольно. Результат нашей совместной работы получился намного более значительным, чем вклад нас обоих по отдельности».

В создании UNIX участвовали шесть человек. Ритчи вспоминает [5]: «UNIX была разработана Кеном Томпсоном. Я написал много системного ПО, Кен — большую часть остального. Среди других участников были Джо Оссанна, Дуг Макилрой и Боб Моррис». Шестым, о ком забыл упомянуть Ритчи, был Ричард Кенедей.

Катализатором появления UNIX стала система MULTICS (Multiplexed Information and Computing Service), которая, как и UNIX, используется по сей день. Она возникла как результат проекта MAC (Multiple Access Computers), стартовавшего в ноябре 1962 г. в MIT. В конце 1964 г. к MIT присоединились компания General Electric и лаборатории AT&T Bell Labs. Неудовлетворенность руководства Bell Labs темпами работ привела его к решению выйти из проекта. Разрыв состоялся в апреле 1969 г., и небольшой коллектив, куда помимо Томпсона и Ритчи входили Джо Оссанна, Дуг Макилрой, Боб Моррис и Ричард Кенедей, оказался не у дел. Все их попытки убедить руководство в необходимости приобрести подходящий полигон для реализации идей по созданию новой ОС (речь тогда шла о мэйнфреймах DEC PDP-10 и SDS Sigma 7) ни к чему не привели. Вооружившись мелом и пером, Томпсон, Ритчи и Кенедей начали проектировать новую иерархическую файловую систему. Она стала, по словам Ритчи, сердцем UNIX, а все остальное строилось именно на ее основе.

Как вспоминает Деннис Ритчи [6], название UNIX предложил Брайан Керниган. Оно перекликалось с названием системы MULTICS. Причем существуют две версии образования имени UNIX: по одной — это просто трансформация названия Multics («multi» заменяется на «uni», а «cs» — на «x»), по другой — видоизмененная аббревиатура UNiplexed Information and Computing System (UNICS). Если вспомнить, что MULTICS само по себе сокращение, то обе версии сливаются в одну.

Деннис Ритчи вспоминает [7]: «Операционная система UNIX внезапно стала новинкой, хотя таковой и не была. Она зародилась в 1969 г., когда Кен Томпсон открыл для себя малоиспользуемую машину PDP-7 и решил оснастить ее программной средой на свой вкус. Его работа скоро привлекла меня, и я присоединился к нему. Следует уточнить: многие идеи и основная часть работы по их воплощению принадлежали ему».

Несколько слов о той технике, на которой все это создавалось. В те времена первый компьютер фирмы Digital (DEC), PDP-1, стоил дешевле, чем канал ввода-вывода, применявшийся на лучшей тогда модели IBM 7090. Он представлял собой 18-разрядную машину, что сейчас некоторым может показаться странным. Преемницей PDP-1 (1960) стала PDP-4 (1962), а на смену ей пришла PDP-7 (1965). К началу 1970-х годов было продано 120 таких машин. Система ввода-вывода компьютера PDP-7 обладала довольно интересной особенностью: в то время промышленность переходила на стандарт ASCII, поэтому PDP-7 спроектировали так, чтобы можно было принимать как ASCII, так и 5-разрядный код Бодо, ранее активно применявшийся на телетайпе.

Работа корпорации Digital над 16-разрядным семейством PDP-11 стала поворотным пунктом в ее отношении к программному обеспечению. Так, в проекте PDP-11 появилось сразу несколько программных нововведений. Среди них — время срабатывания прерывания, вспомогательные средства отладки, генерируемый компилятором код, загрузка программ и распределение памяти. Как и в случае с семейством 18-разрядных машин, главным языком PDP-11 стал Фортран. Популярность PDP-11 оказалась огромной: за первые восемь лет производства (с 1970 г.) было продано 50 тыс. компьютеров.

В 1971 г. Ритчи и Томпсон получили в свое распоряжение машину PDP-11 и к концу года обеспечивали работу трех первых пользователей — машинисток, вводящих заявки на патенты в Мюррей-Хилл, где размещались лаборатории Bell Labs. Перенос UNIX с PDP-7 на PDP-11 произошел в первом квартале 1971 г. На язык Си ОС UNIX была переписана в 1973 г. и тогда же представлена широкой общественности на Конференции по принципам операционных систем. Первой важной публикацией стала статья Ритчи и Томпсона в журнале «Communications of the ACM» [8]. В состав ПО в UNIX входили штатные для PDP-11 ассемблер и компилятор Фортрана, компилятор языка B (Кен Томпсон), а также созданные Дугом Макилроем макропроцессор M6 и компилятор компиляторов TMGL — предшественник компилятора YACC Стива Джонсона. Вслед за реализацией на PDP-11 в начале 1970-х годов появились компиляторы Си для компьютеров IBM 360/370, Honeywell 635, Interdata 8/32.

Илон Маск рекомендует:  Как написать ajax приложение

Становление и развитие языка

Эволюцию Си можно условно разбить на три стадии: детство (1971-1977), юность (1978-1988) и зрелость (с 1989 г.). В табл. 3 показаны основные вехи «большого пути».

На первой стадии основное внимание уделялось технической стороне дела, на второй — во главу угла были поставлены популяризация и формирование сообщества пользователей, на третьей (после стандартизации) — начался процесс активного промышленного использования языка.

Одним из определяющих событий стало появление в 1978 г. бестселлера K&R, иначе называемого «белой книгой» [1]. Он де-факто установил стандарт языка и сделал его каноническим как минимум на целое десятилетие. Ритчи вспоминает: «Керниган написал почти весь пояснительный материал, я же отвечал за приложение, куда было включено справочное руководство по языку, и за главу по взаимодействию с UNIX». Вот так и раскрылся секрет: язык создал Ритчи, а книгу в основном написал Керниган.

Де-юре язык Си был стандартизирован в 1989 г. Американским национальным институтом стандартов (ANSI). Практически тот же самый стандарт был принят Международной организацией по стандартизации (ISO) годом позже. Формально с появлением ISO-стандарта ANSI-стандарт был изъят, но вместо ISO в среде разработчиков было принято все же говорить о диалекте ANSI C.

По мнению Брайана Кернигана, «главные достоинства Си состоят в том, что он предоставляет программисту возможность полного управления реализацией и что программы, написанные на Си, работают, как правило, весьма быстро». Большое влияние на Си, помимо BCPL и B, оказал Алгол-68, в частности это касается схемы композиции типов, конструкций struct и union, приведения типов. Важным изменениям язык подвергся в 1972-1973 гг., когда шла подготовка к «погружению» в него ОС UNIX. Самым значительным из них стал препроцессор, на создание которого наибольшее влияние произвели идеи Алана Шнайдера и механизмы импорта файлов в языках BCPL и ПЛ/1. Условная компиляция и макросы в Си появились в тот же период благодаря работам Майка Леска и Джона Рейзера. Что касается стандартной библиотеки ввода-вывода, ставшей важной составляющей популярности и практической ценности языка, то она была разработана в 1973 г. там же, в Bell Labs, Майком Леском.

«Си — это инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво». В этом малоизвестном утверждении Кернигана скрыт важный смысл. Он пытается отвратить программистов от бездумного применения всех имеющихся в их распоряжении средств. «Какова роль языка? — размышляет он. — Основной движущей силой эволюции языков программирования стала попытка предотвратить ошибки, используя возможности этих языков. Одни из таких возможностей уменьшают шанс появления целых классов ошибок: проверка диапазонов индексов, ограничение использования указателей или полный отказ от них, сборка мусора, строковые типы данных, типизированный ввод-вывод, строгая проверка типов. Однако другие возможности языка напрашиваются на ошибку, например оператор goto, глобальные переменные, свободно применяемые указатели, автоматические преобразования типов. Программистам следует знать зоны повышенного риска в своих языках и обращаться с ними особенно осторожно».

Сегодня Си, как и Паскаль, нередко подвергают критике, во многом вполне справедливо. Даже сам Керниган признает: «Сравнивая способы, которыми программы на Си и Java представляют и обрабатывают одни и те же структуры данных, следует отметить, что в случае Java функциональные обязанности разделены лучше». Бывают и более резкие оценки. Так, Питер Мойлан не без сарказма замечает: «Бытует мнение, что Си апеллирует к «мужскому началу» программистов, которым нравится сражаться с малопонятными ошибками и находить невероятные и хитроумные решения проблем. Многих привлекает и компактность нотации Си. Похоже, сторонники этого языка считают, что возможность написать такой, скажем, оператор, как **p++^=q++=*r-s, служит серьезным аргументом в пользу применения Си, поскольку экономится время. Скептик может возразить: такое ускорение сведет на нет необходимость в дополнительных комментариях. Достаточно просмотреть несколько типичных программ на языке Си, чтобы убедиться: на комментариях здесь тоже экономят, причем даже так называемые профессиональные программисты».

Ахиллесовой пятой языка Си, как и в случае классического Паскаля, является отсутствие поддержки модулей (хотя бы в понимании Ады и Модулы-2) и, следовательно, полноценной раздельной компиляции. Суррогат в виде препроцессорных директив «#include» не спасает ситуацию, а лишь усугубляет ее еще больше. Вместо раздельной компиляции получается независимая, при которой вопросы рассинхронизации интерфейса и реализации решаются весьма замысловатым и ненадежным образом. Что уж тут говорить о поддержке контрактных форм интерфейсов, исповедуемых Бертраном Мейером, автором языка Eiffel. Но Кернигану надо отдать должное. Критику он признает и отмечает: «Препроцессор Си — мощный, но несколько туповатый инструмент, а макросы — вообще довольно опасная вещь, поскольку они изменяют лексическую структуру программы».

И все же недостатки — оборотная сторона достоинств. Если бы в отношении Си это было бы не так, вряд ли язык дал бы жизнь многим своим потомкам (см. табл. 4), среди которых самым известным стал Си++. При создании Си++ Бьерн Страуструп искал базовый язык для расширения его концепцией классов из языка Симула. Как альтернатива Си, по словам Страуструпа, рассматривались Модула-2, Ада, Smalltalk, Mesa и CLU. Но предпочтение было отдано все же Си.

Будущее языка Си

Появление благодаря работам Бьерна Страуструпа языка Си++ (1984), ставшего фактически главным языком программной индустрии, а также повальное увлечение объектно-ориентированным проектированием и программированием заставили уйти в тень его именитого предшественника — язык Си. С другой стороны, в ходе программной эволюции возникли два направления, которые закрепили за языком Си статус безусловного лидерства: API-программирование и перенацеливаемые компиляторы. Программные интерфейсы (API), порождаемые бесчисленными производителями ПО и понимаемые в широком смысле как интерфейсы системного и прикладного программирования, формируются с прицелом на Си. Остальные языки вынуждены либо пользоваться этим слоем, либо подстраивать его под себя, что в условиях безудержной гонки версий создает массу проблем. Итак, при формировании программной инфраструктуры Си стал основным связующим слоем между разнородными системами и компонентами.

Другой его конек — генерация промежуточного кода с настройкой на особенности целевой платформы. Если раньше при разработке компиляторов кодогенератор «затачивался» под конкретную аппаратную и операционную платформу, то сейчас требуется гибкость перенацеливания генерации. А ее проще всего бывает обеспечить, если выбрать Си в качестве языка промежуточного представления программного кода, сводя, как в математике, новую задачу к уже решенной. Брайан Керниган особо отмечает эту важную роль языка Ритчи: «Си часто используется в качестве языка ассемблера высокого уровня. Modula-3 и Си++ относятся к тем языкам общего назначения, для которых первые компиляторы создавали код на Си, обрабатывающийся уже затем стандартным компилятором. Подобный подход очень помог этим языкам на ранних стадиях их внедрения».

Неизменность языка Си на протяжении многих лет и стала одной из серьезных предпосылок для его лидерства в упомянутых областях. Теперь же, с выходом стандарта C99, ситуация становится менее ясной. Си фактически превращается из подмножества Си++ в самостоятельно развивающийся язык, нарушая сложившуюся в последние годы и уже успевшую укорениться структуру связей, когда эти языки применялись неразрывно.

Бьерн Страуструп высказывает серьезную озабоченность подобными обстоятельствами: «Новшества Си-99 (C99) касаются расширения низкоуровневых средств Си в области численного программирования, а включенные в Си++ средства абстрагирования и универсализации в основном проигнорированы. Это усложняет достижение совместимости, поскольку в Си добавляются специализированные возможности для конкретных случаев, а в Си++ те же потребности программиста удовлетворяются с помощью библиотек, реализованных с применением языковых средств общего назначения».

По поводу нового стандарта и сам Ритчи выражает свое мнение сдержанно-скептически [9]: «Я был удовлетворен стандартом ANSI/ISO 1989-1990 гг. Новый стандарт C99 намного более громоздкий, и хотя комитет сообщил, что потратил значительную часть своего времени на отсеивание предложений о нововведениях, принял он тоже немало, и все это еще предстоит переварить. Я определенно не хочу дополнительных возможностей и, очевидно, предпочел бы, чтобы комитет сопротивлялся более стойко. Стандарт C99 мне не очень нравится, однако я не пытаюсь его отменить. Комитет отлично поработал; Си действительно должен развиваться».

Однако где проходит та грань, которую при внесении изменений в язык нельзя переступать? Главное, чтобы новации не приводили к еще более серьезным проблемам, к появлению таких побочных эффектов, которые перечеркнули бы весь выигрыш от новых чудодейственных «препаратов». Тони Хоар в этой связи отмечает: «Программистам всегда приходится соприкасаться со сложностью, и этого нельзя избежать. Наши приложения сложны, потому что мы честолюбивы и стремимся использовать наши компьютеры все более сложными способами. Программирование сложно из-за большого числа противоречивых целей, преследуемых каждым программным проектом. Если наш основной инструмент, язык, на котором мы составляем и кодируем программу, также непрост, то сам язык становится частью нашей проблемы, а не ее решения. Когда какой-нибудь проект нового языка близится к завершению, то всегда возникает безумная спешка — нужно внести новые свойства еще до стандартизации. Это стремление действительно безумно, потому что оно заводит в ловушку, из которой нет выхода. Недостающие свойства всегда можно добавить позже, когда их конструкция и последствия будут хорошо поняты. Свойство, включенное до того, как стало понято, никогда нельзя изъять позже».

С такой позицией солидарен и другой классик программирования — Эдсгер Дейкстра: «Я вспоминаю одну лекцию на симпозиуме по языкам программирования высокого уровня, прочитанную в защиту языка ПЛ/1 человеком, который называл себя его преданным пользователем. Но в конце этой часовой лекции, восхваляющей ПЛ/1, он ухитрился попросить добавления около 50 новых «свойств», совсем не предполагая, что основным источником его трудностей является именно то, что язык и так имеет слишком много «свойств». Лектор проявил все удручающие симптомы наркомании: дошедший до отупения, он мог лишь просить все больше, больше, больше. »

Бьерн Страуструп все же надеется, что разрыва между Си и Си++ удастся избежать. Он подчеркивает: «Моим идеалом по-прежнему остается единый язык, и техническая возможность слить Си++ с C99 пока сохраняется. На мой взгляд, такой язык мог бы соответствовать любым разумным техническим условиям. Однако я не уверен, что это приемлемо политически. Для начала потребовалось бы объединить комитеты по стандартизации Си и Си++: нельзя было бы иметь две различные группы, параллельно развивающие два языка».

Вне зависимости от того, по какому пути пойдет Си, возникает вопрос: останется ли Си и через пять или десять лет таким же популярным и незаменимым, как сейчас? Деннис Ритчи на сей счет высказывается очень осторожно: «Я, честно говоря, не знаю ответа на этот вопрос. Могу только заметить, что программное обеспечение в целом труднее поддается замене, чем аппаратное. Скажем, число программ на Си++ и Java, вероятно, растет быстрее, чем число программ на обычном Си, но я готов спорить, что Си сохранится. Инфраструктура не позволит его вытеснить. То же самое, конечно, можно сказать и о других языках (например, о версиях Паскаля, о языке Ада)».

В чем же секрет феномена Си? Деннис Ритчи в своем выступлении на Международной конференции по истории языков программирования (1993) сформулировал разгадку так: «Язык Си — это невероятный, оглушительный и огромный успех. Хотя повороты судьбы ему помогали, он безусловно удовлетворил потребности в таком языке реализации систем, который был достаточно эффективным, чтобы заменить ассемблер, и в то же время достаточно абстрактным и гибким, чтобы описывать алгоритмы и взаимодействия в широком спектре программных сред». Да, Си, несмотря на справедливую критику в его адрес и техническое несовершенство, все же сумел завоевать мир. Ибо — такова жизнь. «Существует масса прекрасных языков (прекраснее, чем Си), которые не привились,— признает Ритчи,— но кто-то все же выигрывает. »

Литература

1. Kernighan B.W., Ritchie D.M. The C Programming Language. Prentice-Hall, 1978. [Пер. на рус. яз.: Керниган Б., Ритчи Д. Язык программирования Си. М.: Финансы и статистика. 1985].
2. Moylan Peter. The case against C // The ModulaTor. — 1993. — V.3.—N 6.
3. Богатырев Р. Летопись языков. Паскаль // Мир ПК. — 2001. — № 4.
4. Ritchie D.M. The Development of the C Programming Language // History of Programming Languages. ACM-Press, 1996.
5. Ritchie D.M. Writings from the Past. 1997.
6. Ritchie D.M. The evolution of the UNIX time-sharing system // Language Design and Programming Methodology/Ed. by J.Tobbias, Springer, 1980.
7. Ритчи Д. Размышления об исследованиях в области программного обеспечения // Лекции лауреатов премии Тьюринга за первые двадцать лет. 1966-1985. — М.: Мир, 1993.
8. Ritchie D. M., Thompson K. The UNIX Time-Sharing System // Communications of the ACM. — 1974.— V.17. — N7.
9. Калев Д. Будущее по Дэннису Ритчи // Мир ПК. — 2001. — №3.
10. Мосени П. Inferno: ОС для сетевых компьютеров // Мир ПК. — 1997. — №10.

* Здесь и далее некоторые названия языков подобно названиям компаний, систем, продуктов и стандартов записываются латиницей, а не кириллицей, поскольку они либо малоизвестны широкой аудитории, либо не имеют прецедента такого представления в отечественных изданиях. — Прим. ред.

Биография

Деннис Ритчи (Dennis M. Ritchie) родился 9 сентября 1941 г. в Бронксвилле (шт. Нью-Йорк). Закончил Гарвардский университет, имеет степень бакалавра по физике и магистра по прикладной математике. Темой диссертации, защищенной в 1968 г., была субрекурсивная иерархия функций. В 1967 г., продолжая семейные традиции и пойдя по стопам отца, поступил на работу в исследовательскую лабораторию AT&T Bell Laboratories в Мюррей-Хилле (шт. Нью-Джерси). Ритчи участвовал в разработке системы MULTICS (совместный проект Bell Labs, MIT и General Electric), а также компилятора языка BCPL на компьютерах GE 645 (ОС MULTICS) и GE 635 (ОС GECOS). В этот же период он написал компилятор для языка ALTRAN, предназначенного для ведения символьных вычислений. Активно помогал Кену Томпсону в создании знаменитой операционной системы UNIX. В самом начале разработки UNIX добавил систему типов и новый синтаксис к языку B («Би»), созданному Томпсоном. Так родился Си. Совместно со Стивом Джонсоном и Кеном Томпсоном участвовал в переносе UNIX на Interdata 8/32. ОС UNIX 7 Edition, вышедшая из отдела Томпсона и Ритчи, стала основой для UNIX BSD и коммерческой UNIX System V. После реорганизации AT&T, уже в рамках Lucent Labs, возглавлял группу по созданию операционной системы Plan 9 (1995). Она была положена в основу следующего проекта группы Ритчи — ОС Inferno, анонсированной в апреле 1996 г. Для этой системы Ритчи разработал язык Limbo [10]. В настоящее время он возглавляет отдел исследований по системному ПО в Bell Laboratories. В 1983 г. на ежегодной конференции ассоциации ACM Деннису Ритчи и Кену Томпсону за разработку и реализацию языка программирования Си и операционной системы UNIX была вручена престижная премия Тьюринга. Отмечен многими наградами, среди которых премия Эммануэля Пьора (1982), премия ACM Software Systems Award (1983) и медаль Хэмминга (1990). В 1988 г. Ритчи избран в Американскую национальную инженерную академию (National Academy of Engineering).

БУДУЩЕЕ СИ++

Поскольку в последнее время основное внимание уделяется языку Java, кое-кто забывает о том, что Си++ продолжает оставаться «рабочей лошадкой» программистов. Две существенно обновленные версии компиляторов Си++ — VisualC++ 5.0 фирмы Microsoft и C++Builder компании Borland — отличаются поистине уникальными простотой использования и гибкостью. При разработке VisualC++ основное значение придавалось средствам для подготовки и редактирования управляющих элементов ActiveX, а создатели C++Builder сосредоточили свои усилия на средствах RAD (ускоренная разработка программного обеспечения) для программирования на Си++.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL