Читателю предлагается второе, существенно переработанное издание книги, впервые опубликованной в США в 1978 г. Книга написана авторами языка Си, и прошедшие годы дают все основания отнести ее к программистской классике. Перевод первого издания вышел в издательстве «Финансы и статистика» в 1985 г. и стал той книгой, которую многие программисты хотели бы иметь как настольную.
Новое издание, сохранив общую структуру книги и стиль изложения, отражает тот путь, который прошел в своем развитии язык Си, получивший в 1989 г. статус американского национального стандарта. В стандартизованной версии язык еще более отшлифован, избавлен от большинства вызывавших критику черт и дополнен рядом полезных возможностей. Интерес к языку Си вполне понятен. Язык занимает едва ли не первое место по распространенности среди инструментальных средств системного программирования во всем мире. Причем благодаря потоку персональных компьютеров, хлынувшему к нам из-за рубежа, он повсеместно используется и в нашей стране.
Можно еще много говорить о достоинствах книги, ее авторов, языка Си и его новой версии, но в этом нет необходимости, поскольку все книги по языку Си и без того являются бестселлерами. Спрос на них многократно превышает предложение. Поэтому перейдем к извечной проблеме переводчиков — проблеме терминологии.
В переводах первого и настоящего издания есть заметные терминологические расхождения. Во-первых, терминология не стоит на месте, во-вторых, переводы выполнялись разными переводчиками и, стало быть, не могла не проявиться разница во вкусах. Перечислим основные термины, по которым имеются расхождения.
В оригинале |
В переводе первого издания |
В переводе второго издания |
---|---|---|
character | символ | литера |
structure | запись | структура |
member | элемент | член |
union | смесь | объединение |
pipe | канал | трубопровод |
line | строчка, строка | строка |
string | строка | стринг |
statement | оператор | инструкция |
operator | операция | оператор |
operation | операция | операция |
declaration | описание | декларация |
tag | тип записи | тег |
Новации, как легко заметить, в частности, состоят в следующем. Введен термин стринг, чтобы можно было разным английским терминам line и string поставить в соответствие разные русские термины. Термин statement везде переводится как инструкция с тем, чтобы освободить оператор для употребления в традиционном смысле — как знак операции.
Из того что не вошло в таблицу отметим термины инкрементация и декрементация, полученные «калькированием» английских incrementation и decrementation соответственно. Мы отважились ввести эти термины, поскольку убеждены, что все, что широко употребляется в жизни, рано или поздно будет признано в качестве термина, хотя в течение какого-то времени и квалифицируется как жаргон. Нам кажется, что чем скорее перестанут считаться жаргоном «теги», «скипы», «пайпы», «хеширования», «стринги» и т. п., тем лучше. Вспомните, какой горячий протест в свое время вызывали дисплей или файл, и подумайте, как настрадается тот, кто попытается обойтись без этих слов сегодня. Тенденции мировой интеграции и конвергенции очевидны и неодолимы, и мы не скрываем своего желания сближать русские и английские термины.
Наконец, последнее замечание. В оригинале употребляется термин white space character, собирательный для литер пробела, табуляции, новой строки, новой страницы и т.п. Нам не хватило смелости (может быть, напрасно) ввести «белый интервал» или что-нибудь подобное, и мы остановились на пробельной литере.
В заключение хочется выразить благодарность А. Б. Ходулеву, за неоценимую помощь, оказанную им в овладении техническими и программными средствами, которые были использованы при подготовке на компьютере оригинал-макета книги.