-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Apokalips

 -Интересы

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

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 03.07.2007
Записей: 335
Комментариев: 1664
Написано: 6315





Хундай Герц

Понедельник, 17 Марта 2008 г. 17:10 + в цитатник
Это новая моя тачка, привизут в течении месяца с нуля и уже с готовыми номерами и пройденым тех осмотром. Купил в автосалоне "Независимость". Очень благодарен продавцу консультанту Морозову ********. Сначало хотел форд фокус но он только снаружи норм а внутри теснота ужасная и все мешается.

Письмо.

Среда, 12 Марта 2008 г. 01:59 + в цитатник
Привет любимая, привет детка!
Чем занимаешься моя сладкая конфетка?
Это мое третие письмо, чего не пишешь?
А я тоскую по тебе, представь, стоишь и дышешь.

Я знаю, ты вечно занята,
Ну напиши ты мне хоть пару строк тогда.
Напиши, как сложилась твоя жизнь, судьба,
Ещё немного, и я буду рядом,наверника.

Скажи, что тоскуешь, скучаешь...
Ты мне точно нивидимку напоминаешь.
Ни слуху, ни духу, вот это беда!
Нет, нифига, тьфу-тьфу-тьфу, моя голова...

Совсем уже нет сил, мне тут держаться,
Хочу уж с тобой я скорей повенчаться.
Свадьбу сыграть, на карибы сорваться,
Выпить немного, с тобой оторваться.

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

Надеюсь на скорую встречу, пока!
Ну это письмо дайдет наверника.
С любовью Никитка, твой вечно любимый,
Красивый, прекрасный и очень сильный.
 (400x400, 60Kb)

Время

Среда, 12 Марта 2008 г. 01:30 + в цитатник
Ну значит пишу всем. Я щас учусь с 9:00 до 16:00, потом с 17:00 до 01:00 я работаю. И так каждый день без выходных. За то у меня стабильно в кармане по несколько чтук. Сори, что не постю в ваших дневах, сами видите мой график каждого дня. Но я постораюсь это исправить. И спасибо тем, кто все ещё считает меня своим другом. Мои пч, я вам благодарен за оценку стихов и песен. Когда выхожу покурить, тогда соченяю что-то. Или во время работы, но это редко. Буду выкладывать все сюда.
 (600x450, 235Kb)

Это обычно, когда кто-то из партнеров что-то таит и держит в себе. Это очень заметно.

Вторник, 11 Марта 2008 г. 16:26 + в цитатник
По этому, доверяйте друг другу всегда и во всем. И доверяным не пользуйтесь!


Скажи зачем, зачем тебе все тени?
Надоели, просто твари надоели!
Не могу, не могу сказать постой,
Ты и сама это видешь, я наполнен пустатой...

Я о тебе, о тебе совсем не знаю,
Ты скрываешь, ты скрываешь своим злобным взглядом
Наполняешь, наполняешь мою душу болью.
И не знаю, это как по ране солью.

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

Ласково жить не надо покоя когда пустота
И глаза залиты кровью.
И жизнь-красота, когда согревает.
Любовь-мечта, когда любит, понимает.
Солнце-огонь, когда светит на нас
Любовной стрелой Амур выстрелит в нас.
Атас гормональный, только поможет.
А ночь-тишина нас вместе положет...

Снова молчишь, не можешь сказать
Ты даже не можешь свой взгляд оторвать
Делаешь вид, будто не слышешь
Будто мертва, и даже не дышешь

Окей дорогая я буду молчать
Но останься со мной, я буду рад
Мне все говорят, какой я дурак
Я буду с тобой, мне не в напряг

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

Ласково жить не надо покоя когда пустота
И глаза залиты кровью.
И жизнь-красота, когда согревает.
Любовь-мечта, когда любит, понимает.
Солнце-огонь, когда светит на нас
Любовной стрелой Амур выстрелит в нас.
Атас гормональный, только поможет.
А ночь-тишина нас вместе положет...
 (476x698, 107Kb)

Новый шаг

Воскресенье, 09 Марта 2008 г. 03:43 + в цитатник
Зачем тосковать о том,чего нету
О том что ушло и прошло навсегда
О том, что должно быть закрытою книгою
Будет теперь в жизни новая строка

Путаница...

Пятница, 22 Февраля 2008 г. 15:57 + в цитатник
Вот очень много разной ерунды, которой не укладывается в голове при отношениях. Вот вроде нет отношений а проявляется ревность, ревнует значит любит или просто не равнодушие к этому человеку? Многие говорят, не ревнуй, не к чему ревновать. Но увы, ревновать всегда есть к чему! Может просто не нужно создавать поводов для ревности? Или без нее скучно? Может её надо просто в меру? Возможно нужно чаще об этом разговаривать, что-бы действительно и наверняка все разъяснить... Вот нравится парню девушка, на столько сильно, что он боится с ней даже разговаривать. Боится показать ей свои чувства, остерегаясь отказа. Ибо после отказа вабще не возможно будет смотреть в эти милые глазки. Она видится с ним каждый день, он сходит с ума лишь потому, что как это принято "боится только трус". Но вот только набрался сил подойти и сказать, подходит и внутри все переворачивается "А вдруг откажет". Попытка не пытка а все-же. Эта принцесса нравится многим, и многи получали отказ. А вдруг он следующий, кто пополнит список неудачников? Очень бы даже не хотелось! А когда получаешь отказ это мучительно больно! А кроме нее ты больше никого не видешь... Ни одной девушки, она одна такая "Принцесса", а вдруг он не тот "Принц"? Может стоит следовать зову серца? А каков он? С опаской заводить дрожащим голосом разговор? Тогда может Слушать зов души? Просто написать свои чувства на бумаге и пополнить коллекцию влюбленных записок без ответа? Точно, наверно стоит просто ждать, веть оба человека должны действовать вместе. А если нет ответа? Не судьба? Вот головоломка блин...

Новая жизнь

Четверг, 21 Февраля 2008 г. 01:36 + в цитатник
Все, черная полоса прошла, теперь только свет, настроение и радость. Хорошая работа. Хорошие отношения с менеджером. Устраиваю подругу на работу, благадаря менеждерам. Если я буду продолжать в том-же духе, обещают повысить через пол года-это шикарно, зп в три раза больше! У меня ещё небыло недостач. Наварил за пять часов работы 740р. Я молодец! Мне очень нравится эта работа и вабще мне щас все только нравится! И вабще, я привык быть самым лучшим, таким я и останусь! ;))
 (600x450, 58Kb)

Котлетоид мой =))

Воскресенье, 27 Января 2008 г. 14:54 + в цитатник

Форум

Воскресенье, 27 Января 2008 г. 03:12 + в цитатник
Я сделал себе форум =))
=)))
Просто так, что-бы было =))Заходите кто хотите +)))

Фотки

Воскресенье, 27 Января 2008 г. 02:35 + в цитатник
Остальные смотрите в фотоальбоме =))
 (700x525, 212Kb)
 (700x525, 178Kb)
 (700x525, 176Kb)

Удаляю и больше не записываю.

Суббота, 26 Января 2008 г. 10:08 + в цитатник
Удаляю все ранее написанные тексты и больше не записываю. Это необхадимо для регистрации права. Теперь я буду, а точнее попробую проявить себя в этом. Буду выкладывать только после получения права. =)

Какая гадасть...

Пятница, 25 Января 2008 г. 17:00 + в цитатник
 (550x412, 11Kb)
Это тоже что-то новенькое, видимо у меня все сильней и сильней развивается стихоплетство =))

Я нихочу ничего и вабще все заебало,
Даже жизнь не мила и закрой свое ебало!
Мне насрать на других, мне насрать на все на свете,
Я живу, как живу, и вся жизнь моя в ланьете.
Не хочу так больше жить и не хочу умирать,
Мне насрать на все на это, на тебя мне наплевать!
Пусть падонак я убогий, но за то могу лизать
Просто в шоке мои чики, все готовы мне отдать!
Пусть все лучшее на свете не в этой песне,
Хочу просто, чтоб писали обо мне в газете
Московская правда «Он хулиган»,
«Он негодяй свой имеет наган»…
Просто хоть что-то, крики души,
Навязались опять эти сраные вши…
Милиция с ног валит, гоняют повсюду,
В зоопарке везет больше верблюду…
А я теперь как птица в клетке,
Сижу и курю, вспоминаю конфетки,
С круглыми попами и классным бюстом
Гламурными шмотками и супер минетом.
Пусть все лучшее на свете не в этой песне,
Самое дорогое свое подарю своей невесте.
Самое при самое лучшее все далеко впереди,
Только прошу, счастье, удача, не подведи!


Десять принципов задиака =))

Четверг, 24 Января 2008 г. 20:01 + в цитатник
1. Хорошего человека должно быть много.
2. Кому я должен, всем прощаю.
3. Лучший отпуск- кругосветное путешествие.
4. Главное в проблеме- её маштаб.
5. Мой идеал- Иван Цареевия.
6. На меня невозвожно сердится.
7. Угрызение совести- что это такое???
8. Обязательность украшает лишь посредственных людей.
9. Беспокоится заранее глупо, разберёмся по ситуации.
10.Не обязательный человек, просто обязан быть обязательным.


Овен:
1. Лучше со мной не спорить.
2. Сначала сделаю, потом подумаю.
3. Там где остальные тормозят, я жму на газ.
4. Буду вечно молодым.
5. Делай как я, ведь лучше всё равно не сделаешь.
6. Самое трудное выслушать собеседника до конца.
7. Упрямство-не порок.
8. Легко контролировать ситуацию, сложнее -свои эмоции.
9. Один овен- хорошо, два овна- много.
10. первым не нападаю. Но не дай Бог меня задеть.

Телец:
1. Не жалко денег на покупку, жалко на гулянку.
2. Не надо мне чужого, не трогай моего.
3. Худой мир лучше доброй ссоры.
4. Не беспокой того, кто хорошо уселся.
5. Лучше красивый диван, чем красивый закат.
6. Еда- штука серёзная.
7. Ласковый телёнок- двух маток сосёт.
8. Когда едешь вторым, экономишь силы.
9. Терпеть не могу одноразовых зажигалок.
10. Дегустатор- вот моё истинное призвание.

Близнецы:
1. Я сегодня не такой как вчера.
2. Кто владеет ситуацией, тот владеет инфомацией.
3. Один ум хорошо, а два лучше, особенно если оба принадлежат од ому и тому же человеку.
4. Фигаро тут, Фигаро там.
5. Идея как и пр дукты, не должны залежатся.
6. Один телевизо , телефон в доме- хорошо, а три лучше.
7. Кто не успел, тот опоздал.
8. Двигаюсь по жизни, как скутер по воде, не угубляюсь, зато быстро.
9. На базаре «за базар» не отвечаю.
10. Люблю количество, потому что на качество не хватает времени.

Рак:
1. Мой дом, моя крепость.
2. Нянчится с другими-вот моё истинное призвание.
3. Хорошо бы запастись всем на свете, и терпением и варением.
4. Всё приходит к тому, кто умеет ждать.
5. С друзьями встречайся дома, а не в кафе.
6. Ничего так не согревает душу, как вид набитого холодильника.
7. Лучше подкопить, но достойную вещь купить.
8. Тяжело жить там, где негде спрятаться.
9. Я несу за собой своё прошлое, как заплечный рюкзак
10. Неужели за двадцать лет можно износить пальто?.

Лев:
1. Я поведу вас вдаль светлую.
2. Лучше оказывать потдержку, чем получить её.
3. Приятные манеры- половина успеха.
4. Солнце светит Львам.
5. Красивая табличка на двери кабинета важнее высокой зарплаты.
6. Люблю хорошо зарабатывать, а ещё больше тратить.
7. Рояль в доме лучше, чем пианино, пусть даже на нём не кому играть.
8. Не смотря на свой приветливый вид, я в душе диктатор.
9. Если делать- так5 по большому.
10. Зачем вам солнце, если я с вами????

Дева:
1. Терпение и труд всё перетрут.
2. Скромность украшает не только девушку, но и деву.
3. Каждый живёт для себя, но служит другим.
4. Порядок нужен везде: и в мыслях и на кухне.
5. Докажи мне строго логически, что мы созданы друг для друга.
6. Криво висящая полка, сводит меня с ума.
7. В больших маштабах я теряюсь.
8. Мне трудно извлечь косточки из целого ведра вишни.
9. В каждой Деве живёт классная дама.
10. Мухомор непременно нужно бросаться в глаза, а бедый гриб- и так хорошо.

Весы:
1. Без партнёра, как без рук.
2. Самое противное- спорить.
3. Побеждай соглашаясь.
4. Принципиальными бывают только дураки.
5. Вовлеку кого угодно, во что угодно.
6. Красота спасёт мир.
7. Всё надо делать под настроение.
8. Самое трудное сделать выбор.
9. Не над всеми «и» надо ставить точки.
10.Я и самой парой не знаю, за белых я или за красных.

Скорпион:
1. Жаль, некого ужалить.
2. Каждое событие подобно дивану: в нём должны быть скрытые пружины.
3. Для улыбки должна быть серьёзная причина.
4. Можно освободится от всего, но не от собственных страстей.
5. Я пою песнь любви на поле битвы.
6. Не всякий выдержит мой взгляд.
7. Мои страсти редко выходят наружу, подобно акуле, которая редко выплывает на поверхность.
8. Мир пропадает без рыцарей.
9. Не перевелись ещё на земле Отелы!
10.Я похож на кактус, мой сказочный цветок раскрывается для избранных.

Козерог:
1. Я не спрингер, и даже не стайер. Я марафонец.
2. И один в поле воин.
3. Не нарушай законы, другому сойдёт, а тебя поймают.
4. Для себя мне нужно очень мало. Моё имущество- это просто зеркало моих успехов.
5. Жизнь подобна поезду, который на каждую станцию прыбывает точно по расписанию.
6. Приятно рассуждать о дальних странах, сидя дома.
7. Настоящий Козерог, подобно коньяку, отличается выдержкой.
8. Стоит всю жизнь карабкаться на вершину, что бы разок плюнуть оттуда вниз.
9. Только я молодею с годами.
10.Я еду- еду не свищу, а как наеду- не спущу.

Водолей:
1. Как скучно быть похожим на других.
2. Если я тебя придумала, стань таким как я хочу.
3. Предрассудки удел дураков.
4. Будущее просто обязано быть прекрасным.
5. Трудно быть ангелом, но надо.
6. Доброе намеренье важнее добрых дел.
7. Чтобы стать новатором, нужно сначало забыть о традициях.
8. Секс? В жизни есть дела и поважнее.
9. Сначала друзья, а потом уж семья, если конечно останется время.
10. Нет меня добрее, нет меня бодрее.

Рыбы:
1. Посочувствовать важнее, чем помочь.
2. Не могу отказаться от спиртного, как рыба от воды.
3. Порядок придумали скучные люди.
4. Не откладывай на завтра то что можно сделать послезавтра.
5. Мало ли что я могу пообещать.
6. Работать в спешке- то же, что глотать прожевывая.
7. Готов понять всех, только не себя.
8. Ива в бурю гнётся, а дуб валится.
9. Всем известно, что я вечно занят, но мало кто знает, чем именно.
10.Не давите на меня, а то ускользну, как рыба из рук.

Интервью с богом.

Четверг, 24 Января 2008 г. 19:49 + в цитатник
Ахренеь как понравилось, аж слезы накатывались +))


http://flash.li.ru/megido/god.swf

Ошибочка =)))

Среда, 23 Января 2008 г. 17:15 + в цитатник
Обратите внимание на "Моя друзья" =)))

Вложение: 3648341_anketa.doc


Наша раша =)

Понедельник, 21 Января 2008 г. 22:46 + в цитатник
Заметки: Мы живем в самой прекрасной стране на свете, а все остальные страны нам завидуют. Люди - это венец творения природы, а наши люди - полный венец! Ведь именно мы первыми догадались есть макароны с хлебом и пить водку с пивом. Это мы придумали переключать телевизионные каналы плоскогубцами. Благодаря нам в наших женщинах что-то есть.. по меньшей мере, 4 минуты в день. Мы гордо называем нашу страну "Россия", а иностраннцы завистливо говорят Russia. Но все-таки она наша!

Мир тесен!

Понедельник, 21 Января 2008 г. 14:54 + в цитатник
Мир действительно тесен, я тут нашел один сайт и он так и называется "Мир Тесен". Заключается он в этом, смотрите сами
Я сам зарегистрировался и мне понравилось, все давольно таки не сложно =)))
Все друзья на карте! Все друзья на карте!
А вот моя визитка +)))
В общем я пока дальше разбираюсь а вы думайте =))

Ночь удалась...

Понедельник, 21 Января 2008 г. 02:56 + в цитатник
Сегодня суперская ночь, жаркая, с девушкой в постеле, тепло, хорошо, приятно... Я чувствовал себя блаженно. Эх, если бы так... Меня штрафанули сегодня на 700р. Ппц мент мудак... Ну и я тут тоже конкретно ступил. Ничиго, люди учатся на ошибках... Штрафанули за проезд на красный свет, но как раз, когда я проезжал загорелся зеленый а этот начал мне втирать, что я проехал на красный... А Ступил я на том моменте когда стал даказывать ему это... Надо было сунуть ему бабло и все, нет бля... Ну чтож, все норм, за месяц наскребу 700рублев...
 (600x450, 99Kb)

Жудко...

Воскресенье, 20 Января 2008 г. 04:22 + в цитатник
Хотел что-то написать а увы... Нет, мыслей и идей полно, но начинаешь писать одно а хопа, уже другая мысль и так далее. Кароче я запарился и решил оставить на лучшее время. Последние дни были очень нервными, беспокойными, волнительными и напряжными...


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


К Стати, я завалил один экзамен специально, от нефиг делать... Думал дай-ка попробую хоть раз с первого раза не сдать экзамен +))) Мне понравилось, я рад, ну надо-же хоть раз почувствовать себя распиздяем =))))
За то сдал второй, меня так припугнули просто, мол больше видиться не будем и вабще перекращай, вот и сдал без проблем вабще, опять не готовился =)))
 (350x249, 28Kb)

О языке Си

Воскресенье, 20 Января 2008 г. 02:30 + в цитатник
Язык Си не имеет смысла представлять особо. За три десятилетия своей жизни он покорил сердца не одного миллиона программистов всего мира.



Си — это инструмент, острый, как бритва:



с его помощью можно создать



и элегантную программу, и кровавое месиво.



Брайан Керниган



На языке Си было создано такое количество программного обеспечения, с которым сравниться не может, пожалуй, ни один другой язык. История Си полна мифов и ложных стереотипов. Один из самых распространенных — авторство языка. Многие зачастую допускают одну и ту же ошибку, причисляя Брайана Кернигана к числу разработчиков 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 — оператор «*».

Деннис Ритчи вспоминает [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.

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



Эволюцию Си можно условно разбить на три стадии: детство (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. Предшественники языка СиЯзык Год Автор

BCPL 1966 М.Ричардс

Bon 1968 К.Томпсон

B 1969 К.Томпсон

NB 1971 Д.Ритчи



Таблица 2. Этапы создания канонического варианта ОС UNIXГод Версия Комментарии

1969 V1 На ассемблере на PDP-7 и PDP-9

1971 V2 PDP-11/20 без защиты памяти

1972 V3 PDP-11/34, /40, /45, /60, /70, каналы, мультипрограммирование

1973 V4 Работала на PDP-11/70 и Interdata 8/32, ядро переписано на Cи

1975 V6 Первая версия, доступная за пределами Bell Labs

1979 V7 "Истинная UNIX", ядро занимало 40 Кбайт



Таблица 3. Эволюция языка СиГод Комментарии

1971 Язык NB

1972 Новая система типов, переименование NB в C, первая версия языка Си

1972 Введение препроцессора (директивы #include и #define)

1973 Язык подготовлен для написания ядра UNIX

1977 Надежность типов и переносимость, добавление unsigned, long, union, struct

1978 K&R - канонический вариант Си, изложенный в книге Кернигана-Ритчи

1983 По инициативе Макилроя для Си создан комитет по стандартизации (ANSI X3J11)

1988 K&R 2 - второе издание книги Кернигана-Ритчи

1989 Принятие техническим комитетом X3J11 американского стандарта ANSI X3.159-1989

1990 Международный стандарт ISO/IEC 9899-1990

1999 Cтандарт C99 (ISO/IEC 9899-1999)



Таблица 4. Прямые потомки языка СиЯзык Год Автор

Си++ 1984 Б.Страуструп

Concurrent C 1986 Н.Джехани

Objective C 1986 Б.Кокс

C* 1987 Thinking Machines

С+@, ранее Calico 1991 Bell Labs


Поиск сообщений в Apokalips
Страницы: 9 8 7 [6] 5 4 ..
.. 1 Календарь