MXStat
MXStat
Введите текст для поиска
Расширенный поиск каналов
  • Вход на сайт
  • Каталог
    Каталог каналов Региональные подборки Поиск каналов
    Добавить канал
  • Рейтинги
    Рейтинг каналов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Max
Программисты РФ

9 Oct, 17:23

Открыть в Max Поделиться

Это C. Просто автор предпочитал синтаксис ALGOL 68 😄

Стив Борн, создатель Bourne shell, использовал макросы, чтобы исходники оболочки выглядели привычнее:

define IF if(
define THEN ){
define ELSE } else {
define FI ;}

Теперь условие можно записать так:

IF n <= 1 THEN
return;
FI

Препроцессор превратит его в обычный C:

if (n <= 1) {
return;
}

Такие макросы действительно есть в исходниках Bourne shell из UNIX V7. На картинке тот же приём применяется к циклам: FOR, DO, OD.

Любопытный кусочек истории: через define можно поменять внешний вид языка, сохранив прежний компилятор. А вот читать и отлаживать такой код придётся уже с учётом собственного «диалекта».

https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh/mac.h

3.3k 152
Каталог
Каталог каналов Подборки каналов Поиск каналов Добавить канал
Рейтинги
Рейтинг каналов Max
Контакты
Написать в Max Написать в Telegram Написать на почту
Всякая всячина
Пользовательское соглашение Политика конфиденциальности
Наши каналы
MXStat в Telegram MXStat в Max
Наши боты
MXAuthBot MXAnalyticsBot
Made by TGStat