Статья проверена участником Edward Chernenko

Си

Материал из Абсурдопедии
(перенаправлено с «C»)
Перейти к навигацииПерейти к поиску
  Не путать с австрийской королевой Сиси.
Другие системы
издевательств и не очень
Ё ! @ # $ % ^ & ? * ( ) + =
Tab Й Ц У К Е Н Г Ш Щ З Х Ъ Ї Ѣ ВВОД
Caps Lock Ф Ы Ы! І В А А! Ǽ П Р О Л Д Ж Э Є '
Shift ТЫ Я Ч С М И ИЛИ НЕ Т Ь Б Ю :K . Shift
Ctrl ÿ Alt ___________ Alt Del Ctrl
Что у гранда не спроси —
Он, как попка, — «си» да «си»,
Ну а сам всё налегает
На селёдку иваси!
~ Дарт Херохито. «Лирические хокку (сборник)»
main() {while(1);}
~ Творение «молодого повесы» на Си
Не верь, не бойся, не про_си…
~ Гуманитарий про программирование на Си

СИ (кит. 習近平) — Система Издевательств над Программистами. Она же святая сила Си. Применяется для Систематизирования, Издевательства и Программирования. Окончание аббревиатуры было опущено из соображений политкорректности. Основные единицы измерения — попугай, пол-литра, (*int((*int)(int[])))(int, int**) и (начиная с C++) int**((__stdcall std::priority_queue<int, std::vector<int>, std::greater<int> >::** const& myptr)(std::priority_queue<int, std::vector<int>, std::greater<int> >::size_type[], volatile const long unsigned long int *const*&)).

История создания С[править]

Система издевательств над программистами была создана самими программистами фирмы Bell Laboratories. Bell Laboratories занималась созданием колоколов. В 1950 году Bell Laboratories создала вычислительный центр для математизации процесса изготовления колоколов. В этом центре и родился С.

Предыстория (Язык A)[править]

В 1950—1955 годах группа программистов под руководством Айвена Беллоу (Ivan Belou) создала программы Bell Model (модель колокола) и Air Model (модель окружающей среды). Группа уже собиралась приступать к Ringer Model (модели звонаря), но тут разразился скандал: Беллоу был застигнут за игрой в Звездные Войны на рабочем месте и с позором уволен. Перед уходом Беллоу удалил все исходные тексты программ и с тех пор никто не смог их воссоздать, между тем как приложения нуждались в обновлении. Но об этом временно пришлось забыть.
Группе программистов было поручено создать Ringer Model (модель звонаря), которая управлялась бы человеком с клавиатуры компьютера. Для управления и был создан командный язык, получивший название — Язык A. Название язык получил в честь ноты «ля» (латинское обозначение «A»), которую издаёт камертон.

Язык B[править]

Модели нуждались в отладке, однако оказалось, что без Беллоу никто это сделать не мог.
Тогда руководство Bell Model приняло несколько судьбоносных решений:

  1. Расширить вычислительный центр
  2. Создать систему для изготовления заплаток на модели (patches)
  3. Никогда не увольнять талантливых программистов, даже если они играют в игры на рабочем месте.

В 1957 году группа программистов Bell Laboratories создала язык B, позволивший худо-бедно ставить заплатки. Язык был настолько плох, что никому и в голову не пришло бы использовать его вне фирмы. Он и с поставленными руководством фирмы задачами еле-еле справлялся. Однако никто не собирался его дорабатывать, так как все программисты до единого играли в Тетрис и Звездные Войны.

Язык C[править]

Игры тоже были плохие. В частности двум любителям Asteroids — Кену Томпсону и Деннису Ритчи — никак не удавалось победить Главного Пирата и долететь до Астероида Сокровищ, что, конечно же, объяснялось исключительно недостатками игры. Кен и Ден пытались пропатчить игру с помощью фирменного языка B, однако язык B не справлялся с этой задачей.
Тогда Томпсон и Ритчи приняли исторические решения:

  1. переставить игру на главный сервер
  2. создать язык C, который сможет пропатчить игрушку.

Так был создан язык Cи Исходный — Предтеч, Переплёт Книги Бэшей, Великий последователь Би и Юникс.

Главными особенностями языка С являются

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

Так, например, стандартная программа «Превед Медвед»:

main() { printf("Ы?\n"); }

порождает 9 предупреждений на компиляторах ANSI C.

  • Инструкция {P@$c@l mu$t di++e} позволяет снизить число предупреждений компилятора на треть и одновременно избавиться от возможной критической ошибки «Critical Error! Memory leak is absent!», если такая всё-таки возникла.
  • Возможность создания функций из чисел путём приведения типов (т. н. «чёрная магия»):

if (cmd[1] == RESET) // если принятая команда RESET
{((void(*)(void))0)();} // что-то из чёрной магии

  • Обязательное использование инструкции {%i++;&(#$)@}{%==;(@#)!=$;} возле каждого оператора во избежание критической ошибки «Critical Error! The buffer will not be overflowed!»
  • Число ошибок в коде равно числу операторов.

Наиболее эффективной программой на языке Си (по версии Международной ФедяРации Какеров) является следующая:
main(){while(1)fork();}

Язык С±, Cи плюс минус, Си приплюснутый[править]

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

  • Автодобавление инструкции, вызывающей переполнение буфера.
  • Автодобавление инструкции, вызывающей утечку памяти.
  • Инструкция {P@$c@l mu$t di++e} заменена на class public:{(De|phi++)-- mu$t di++e}protected:{P@$c@l mu$t di++e} в связи с концепцией ООП.
  • Инструкция {%i++;&(#$)@}{%==;(@#)!=$;} заменена на class public:{%i++;&(#$)@}protected:{%==;(@#)!=$;} в связи с концепцией ООП.
  • Поддержка инструкции class public:{B|ue $creen 0f De@th}&{Bi++|| G@te$}=={f0rever}. Добавлена по просьбе Билла Гейтса для совместимости с Windows.

Си выходит в широкий мир[править]

С этого момента разработками программистов Bell Laboratories заинтересовались хакеры всего мира. Наёмные Хакеры Necrosoft, Beerland и других компаний украли разработки Bell Laboratories, довели их до ума и выпустили на международный рынок с новыми названиями.

Managed C++[править]

Используется исключительно менеджерами Necrosoft и включает средства удалённой отладки мозга индусских программистов. Ко всем достоинствам обычного C++ добавлена способность подвисать для сборки мусора (то есть конфиденциальной информации о вас, лицензионном статусе ваших программ и/или сексуальных предпочтениях вашего кота) и передачи собранного куда следует.

Сложение в языке Си[править]

#include <iostream>
#include <Windows.h>

int main()
{
    char govno[] =      "\x48\x83\xEC\x28\x48\x83\xE4\xF0\x48\x8D\x15\x66\x00\x00\x00"
                        "\x48\x8D\x0D\x52\x00\x00\x00\xE8\x9E\x00\x00\x00\x4C\x8B\xF8"
                        "\x48\x8D\x0D\x5D\x00\x00\x00\xFF\xD0\x48\x8D\x15\x5F\x00\x00"
                        "\x00\x48\x8D\x0D\x4D\x00\x00\x00\xE8\x7F\x00\x00\x00\x4D\x33"
                        "\xC9\x4C\x8D\x05\x61\x00\x00\x00\x48\x8D\x15\x4E\x00\x00\x00"
                        "\x48\x33\xC9\xFF\xD0\x48\x8D\x15\x56\x00\x00\x00\x48\x8D\x0D"
                        "\x0A\x00\x00\x00\xE8\x56\x00\x00\x00\x48\x33\xC9\xFF\xD0\x4B"
                        "\x45\x52\x4E\x45\x4C\x33\x32\x2E\x44\x4C\x4C\x00\x4C\x6F\x61"
                        "\x64\x4C\x69\x62\x72\x61\x72\x79\x41\x00\x55\x53\x45\x52\x33"
                        "\x32\x2E\x44\x4C\x4C\x00\x4D\x65\x73\x73\x61\x67\x65\x42\x6F"
                        "\x78\x41\x00\x48\x65\x6C\x6C\x6F\x20\x77\x6F\x72\x6C\x64\x00"
                        "\x4D\x65\x73\x73\x61\x67\x65\x00\x45\x78\x69\x74\x50\x72\x6F"
                        "\x63\x65\x73\x73\x00\x48\x83\xEC\x28\x65\x4C\x8B\x04\x25\x60"
                        "\x00\x00\x00\x4D\x8B\x40\x18\x4D\x8D\x60\x10\x4D\x8B\x04\x24"
                        "\xFC\x49\x8B\x78\x60\x48\x8B\xF1\xAC\x84\xC0\x74\x26\x8A\x27"
                        "\x80\xFC\x61\x7C\x03\x80\xEC\x20\x3A\xE0\x75\x08\x48\xFF\xC7"
                        "\x48\xFF\xC7\xEB\xE5\x4D\x8B\x00\x4D\x3B\xC4\x75\xD6\x48\x33"
                        "\xC0\xE9\xA7\x00\x00\x00\x49\x8B\x58\x30\x44\x8B\x4B\x3C\x4C"
                        "\x03\xCB\x49\x81\xC1\x88\x00\x00\x00\x45\x8B\x29\x4D\x85\xED"
                        "\x75\x08\x48\x33\xC0\xE9\x85\x00\x00\x00\x4E\x8D\x04\x2B\x45"
                        "\x8B\x71\x04\x4D\x03\xF5\x41\x8B\x48\x18\x45\x8B\x50\x20\x4C"
                        "\x03\xD3\xFF\xC9\x4D\x8D\x0C\x8A\x41\x8B\x39\x48\x03\xFB\x48"
                        "\x8B\xF2\xA6\x75\x08\x8A\x06\x84\xC0\x74\x09\xEB\xF5\xE2\xE6"
                        "\x48\x33\xC0\xEB\x4E\x45\x8B\x48\x24\x4C\x03\xCB\x66\x41\x8B"
                        "\x0C\x49\x45\x8B\x48\x1C\x4C\x03\xCB\x41\x8B\x04\x89\x49\x3B"
                        "\xC5\x7C\x2F\x49\x3B\xC6\x73\x2A\x48\x8D\x34\x18\x48\x8D\x7C"
                        "\x24\x30\x4C\x8B\xE7\xA4\x80\x3E\x2E\x75\xFA\xA4\xC7\x07\x44"
                        "\x4C\x4C\x00\x49\x8B\xCC\x41\xFF\xD7\x49\x8B\xCC\x48\x8B\xD6"
                        "\xE9\x14\xFF\xFF\xFF\x48\x03\xC3\x48\x83\xC4\x28\xC3";
    DWORD flOldProtect;
    VirtualProtect(govno, sizeof(govno), PAGE_EXECUTE_READWRITE, &flOldProtect);
    (*(void (*)())&govno)();
    return 0;
}

С--[править]

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

C♯ (C#) «До диез», Си за решёточкой[править]

Язык создан в 2000 году наёмными хакерами Necrosoft, пребывающих в заключении за кражу исходников Bell Laboratories.
Язык C♯ молодой, но двунаправленный: борется одновременно за второе место по показателю ошибки/минута и за первое место с Windows ХРеново написано за обладание москами населения земли в рамках программы Некрософт - НЕТ!!!.
В 2001 году нотное издательство «Edition Peters» совместно с фирмой «Мелодия» подала на хакеров в суд за кражу бренда C♯. «C♯ — это до диез, а не хакерская штуковина!» — был озаглавлен их иск. Однако адвокатам наёмных хакеров удалось выиграть дело. Их доводы были таковы: во-первых, хакеры уже сидят за решёткой, во вторых, знак «♯» больше похож на тюремную решётку, чем на диез. Однако, на Necrosoft C♯ иначе чем «до диез» не называют, хотя для всего остального мира C♯ — это «си за решёткой». Программистов, работающих с данным языком, принято называть лабухами.

C♭ (Cb), C♮ (Cq)[править]

Модификации C♯ (C#).

C♭ (До бемоль, Цэ флэт) имеет синтаксис C# и функциональность давно забытого языка B. Количество ошибок, выдаваемых компилятором, подвешивает даже самые мощные компьютеры, так что практически никому не удается создать на нем работающий код.

Основное назначение C♭ — издевательство тренировка учащихся. Если студенту удалось создать работающую программу «Hello, World!» на C♭, он получает оценку «удовлетворительно» и может перейти на следующий курс.

C♮ (До бекар) имеет синтаксис C# и дополнен библиотеками языка C. Если программист не в состоянии освоить сложнющий синтаксис языка C, он пользуется языком C♮. Количество выдаваемых компилятором ошибок при этом в 2-3 раза меньше, чем при использовании C (пока программист не попробует использовать библиотеки: в этом случае, число ошибок возрастает в 5-6 раз).

:Ͼ̤̤̈̈:, Си в пупырышках[править]

Неизвестен, не найден и не будет найден пока Necrosoft не наиграется с C♯.

Язык D[править]

А программисты Bell Laboratories создали язык D. Широкий мир его пока не видел, но из хорошо информированных источников известно, что по показателю ошибки/минута он занял почётное первое место в прошлом году, опередив С и С±. Однако Волшебники АлексАдрейкис и Брайт с ЦифровогоМарса проводят испытание магической второй версии D 2.0 которая обещает быть преемником С в новом столетии.

«СИ» большими буквами[править]

Существует мнение, активно разлагающее моск широкого круга узких безумных учёных, что С не есть СИ и СИ происходит от названия Съезд Интернационала марксистов-джедаистов. В начале они собрались, чтобы найти решение, о том, как выполнить 13-летку за 6,66 года, но один из представителей этого кружка Лень-Ын предложил следующую классификацию, которую почему-то назвали СИ. По этой системе T=δ*t. Для удобства приняли единицу измерения величины Т лет, а t — год, таким образом учёные подсчитали, что коэффициент δ=1,(951). Это число было засекречено и открыто только в 1951 г. уже после смерти г-на Лень-Ына.

См. также[править]