Значение синтаксиса COBOL: хэш и точка в начале строки

#cobol

#кобол

Вопрос:

В настоящее время я читаю программу COBOL, и мне интересно, что означают две синтаксические детали:

  • точка в начале строки
  • хэш в переменной / идентификаторе

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

Согласно моим выводам, 7-й символ в строке — это так называемый «индикатор», и единственными допустимыми символами являются * / и —

Также имеет ли хэш в идентификаторе какое-либо особое значение?

Пример 1:

       /****************************************************************
      *multi line comment blabla...
      *****************************************************************
       X008-DO-SOMETHING SECTION.

      .IF  #28,<>,,
           INITIALIZE #25-DATA-AREA
      .END
 

Пример 2:

 026100     SET W-DATEN-READM TO TRUE
026110     .ADD XBVMACP,#XX13-OCU-MAP-I0156 (1)
026120
026130
026140.***************************************************************
026150.* blabla                                                      *
026230.***************************************************************
026240.SL BLGMA
 

Спасибо за отзыв, кроме того, что COBOL, конечно, потрясающий 😉

Комментарии:

1. 7-й столбец — это столбец продолжения, в основном используемый для продолжения длинных строк. Другими распространенными символами в 7-м столбце являются звездочка для комментариев, а в некоторых компиляторах косая черта позволяет программисту изменять значения компилятора по умолчанию или иным образом давать инструкции компилятору. В некоторых компиляторах косая черта в 7-м столбце приводит к переходу печатного вывода к началу следующей страницы. Я не уверен, что означает начальная переменная со знаком фунта.

2. . и # не являются cobol. Я бы предположил, что это какой-то язык предварительного компилятора / макроса. Далее . следует макрокоманда . Далее # следует переменная cobol. С каким Cobol / окружением мы имеем дело??

3. @BruceMartin По-видимому, вы правы, похоже, это макрос. В данном случае код между двумя. Операторы SL, похоже, копируются в другой шаблон и только затем компилируются в COBOL. У вас случайно нет подсказки для документации о том, как работают макросы в целом?

4. Я не помню, чтобы видел этот синтаксис раньше. Я только что понял, что происходит (опыт?). У меня есть представление о том, что это такое на самом деле; вот почему я спросил, из какой среды это происходит