Sunday, January 14, 2007

Язык B и первый в мире hello world

Многие знают что до языка C++ был язык C, который, в свою очередь, вырос из языка B.

Выглядит он, надо сказать, довольно забавно с точки зрения C++ программера. Почитать про него можно тут на сайте bell labs. Почти все фичи присутствуют в C++, но есть некоторое количество всяких смешных нюансов:

  • типов в нем не было. то есть
    auto i; i = 3;
    
    это не C++09, как думают некоторые, это B :)
  • конструкции for там тоже не было. Был только while.
  • зато тернарный оператор ?: уже был
  • массив v[10] содержал 11 элементов с индексами от 0 до 10. Видимо эта фича как-то в генетической памяти записана, не знаю как можно иначе объяснить количество ошибок с доступом к одиннадцатому элементу в C++
  • в качестве escape-character использовался *, а не \. То есть "hello world*n" вместо "hello world\n"
  • да, и сама фраза "hello, world" впервые появилась именно в туториале к B (ну то есть стопроцентно, конечно, тут сложно утверждать, но похоже на то)
    *барабанная дробь* Исходник:
      main( ) {
        extrn a, b, c;
        putchar(a); putchar(b); 
        putchar(c); putchar(’!*n’);
      }
      a ’hell’;
      b ’o, w’;
      c ’orld’;
    

2 comments:

Роман said...

Весьма занятная статья. А что за ошибки в С++ при попытке доступа к 11 элементу массива?

NightmareZ said...

Ну как.... объявили десять элементов (с нулевого по девятый включительно), а обращаются к одиннадцати (с нулевого по десятый).