2013-02-21 2 views
9

Мне нужно найти логику из старого устаревшего кода. Мой менеджер говорит, что это COBOL, я не уверен в этом. Я попытался найти некоторые ключевые слова в учебниках cobol без везения.Может ли кто-нибудь сказать мне, что это за язык?

Вот некоторые фрагменты кода:

PROC(&QPROG); 
VERIFY OFF PROC;DECLARE &MSG1 AS A75; 
/* DON'T CALL SCREEN IF IT'S FROM */ 
IF &QPROG NE 'YUITG' THEN DO; 
    CALL QAAF; 
    SCREEN QUERY LOADED QAAF OTW DO; 
     PRINT 'SCREEN WILL NOT LOAD'; 
     EXIT; 
    END; 
END; 
ON ERROR DO;PRINT &&RC;EXIT; END; 

IF LENGTHB(&P_WHAT) = 4 THEN DO; &P_WHATT = SUBSTR(&P_WHAT,1,1) CAT 
    ', ' CAT SUBSTR(&P_WHAT,2,1) CAT ', ' CAT SUBSTR(&P_WHAT,3,1) CAT 
    ' & ' CAT SUBSTR(&P_WHAT,4,1); 
END; 
DECLARE &KEYWORDD_A(0) AS A1; 
DECLARE &KEYWORDD_F(0) AS 99L; 
&KEYWORDD_A= 
(SUBSTR(&KEYWORDD,1,1),SUBSTR(&KEYWORDD,2,1),SUBSTR(&KEYWORDD,3,1), 
SUBSTR(&KEYWORDD,4,1),SUBSTR(&KEYWORDD,5,1),SUBSTR(&KEYWORDD,6,1), 
SUBSTR(&KEYWORDD,37,1),SUBSTR(&KEYWORDD,38,1),SUBSTR(&KEYWORDD,39,1), 
SUBSTR(&KEYWORDD,40,1)); 
&KEYWORDD_F = FINDEX(&KEYWORDD_A = ' ',ALL); 

IF &PROG EQ &NAV THEN DO; 
    &ALLPROG = 'YES'; 
    &PROG = 'PR2'; 
END; 
-TOP_PROG 
CMS FILEDEF QAA2 DISK QAA2 NOMAD A6 (LRECL 100; 
WRITE '/* REPORT */' ON QAA2; 
WRITE '&GRP  = ''' CATB &GRP CATB ''';' ON QAA2; 
WRITE '&MGTRPT  = ''' CATB &QPROG CATB ''';' ON QAA2; 
IF &AMPRFROM NE &NAV THEN DO; 
    WRITE '&AMPRFROM = ''' CATB DISPLAY(&AMPRFROM) CATB ''';' ON QAA2; 
END; 

CLOSE QAA2; 
+0

PLSQL Возможно, не совсем уверен? –

+1

Возможно, SAS? Вот ссылка на PDF. [LINK] (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CD0QFjAB&url=http%3A%2F%2Fwww2.sas.com%2Fproceedings%2Fsugi23%2FPosters% 2Fp199.pdf & ei = nGAmUbOmAYu02AWZkYHIDw & usg = AFQjCNE1h9c5t43P3Ww01muqbBShLz52Ug & sig2 = 4KRtdzMCH2SNdOghT32ong & bvm = bv.42661473, d.b2I & cad = rja) –

+0

@bwtrent является SAS языком программирования? Взглянул на ссылку, и я понял, что это какой-то инструмент, или нет? – Neir0

ответ

24

EDIT:

Это прослушивание меня прослушивало. Считая, что это не EXEC, а не Rexx, но явно работал в CMS, оставил EXEC 2.

Однако теперь я считаю, что это NOMAD. Трудно подтвердить, но здесь, http://www.tallant.com/portfolio/webpages/web/nomad/nomad2.html, являются примерами некоторых из кода.

Работает ли он от/рядом с EXEC 2, я не знаю. Он может просто работать аналогичным образом или просто поддерживать «обход» CMS или CP, если это необходимо для выполнения «системных функций».

Таким образом, это, вероятно, не ...

Это EXEC2.

Существует два «старых» командных языка с VM/CMS, самый старый и самый ограниченный, это EXEC. Rexx был «новым» командным языком.

Если вы считаете, что это плохо, представьте, что такое EXEC. EXEC и EXEC2 имеют сходство с CLIST, но я не знаю, есть ли у них совместный предок.

Итак, в наши дни «язык сценариев оболочки» относится к операционной системе IBM VM, которая является оригинальной «виртуальной машиной» и включает в себя возможность запуска нескольких копий «одного пользователя» операционная система ", которая, как я полагаю, называется CMS (Conversational Monitor System), которая работает только на виртуальной машине и где находится« CMS FILEDEF »(она« обходит »CMS), а также VM может работать как один или несколько экземпляров, полномасштабных операционных систем IBM, таких как DOS/VSE, MVS, VM (опять же, которые затем могут запускать другие операционные системы «Гость»), и в эти дни z/OS, z/VSE и, я не знаю, но возможно, Linux.

Редактировать. Очень плохая практика заключается в том, что она включает комментарий «/ » « /». Если первая строка файла начинается и заканчивается таким образом, то предполагается, что содержимое будет представлять собой Rexx. VM поддерживает все три «языка», но использует разные интерпретаторы в зависимости от того, как запускается программа.

Из памяти EXEC начинается с * (комментарий), EXEC2 не нуждается в этом, а Rexx с/* to * /, который на CMS может охватывать более одной строки.

+1

Несмотря на два изменения уже, я забыл упомянуть, что VM является операционной системой IBM Mainframe. –

+0

Может быть хорошей идеей указать, что это, вероятно, процедура NOMAD с вложенным EXEC2. Некоторые из утверждений в скрипте должны быть NOMAD, потому что они не EXEC2. Вид вроде того, что происходит, когда HTML-документ содержит встроенный javascript, результат не является ни чистым HTML, ни javascript. Хорошее sluthing ... – NealB

+0

Я искал больше. EXEC 2 запускается и TRACE. Из памяти (поразило ничего, кроме отсканированных документов) команда в EXEC 2, которая не была «распознана» как EXEC 2, перешла бы к «среде», из которой она была запущена, если все еще не разрешена CMS, если все еще не разрешена для CP , или что-то в этом роде, так легко получить этот тип микса. –

-1

Я не уверен в этом, но, похоже, это может быть REXX. Посмотрите:

http://en.wikipedia.org/wiki/Rexx

+0

Спасибо. Я быстро посмотрел на него. И я заметил, что использование переменных остается отличным. В моих снайперах переменные используются раньше с & Ex: & ALLPROG = 'YES'; – Neir0

+0

Его ничего не напоминает Rexx, его клик или его изменение –

3

Это CLIST. Обычно встречаются на мэйнфреймах IBM.

EDIT

На втором дубле, это не CLIST. Похоже, что это был близкий родственник CLIST (из которых более старые системы IBM имели несколько вариантов). Мое лучшее предположение - это довольно старый EXEC, который работает под управлением CMS.

Линия:

CMS FILEDEF QAA2 DISK QAA2 NOMAD A6 (LRECL 100; 

выглядит как побег к CMS для размещения файлов, так что заставляет меня думать о CMS.

Кто-то предположил, что это может быть SAS. SAS на системах IBM может иметь CLISTISH-образ для них тоже, но я не думаю, что это SAS (он работал с SAS несколько раз очень давно, поэтому я тоже исправляюсь).

Я не уверен, что это тоже EXEC2. Я выкопал VM SP EXEC 2 Reference Manual. Некоторые из примеров в этом примере, похоже, не переводятся в EXEC2: PROC, DECLARE, LENGTHB, CALL и CAT, например, не описаны в руководстве. Я использовал CMS еще в 80-е годы и на самом деле должен был написать материал, похожий на это, но это было давно, и я действительно не очень хорошо помню синтаксиса.

Все, что я могу сказать, это то, что этот материал выглядит как производный язык сценариев, найденный в системах IBM середины и конца 1980-х годов.

Это, безусловно, не COBOL или REXX.

+0

Еще одна проблемная строка: «QUREY QUREY LOADED QAAF OTW DO;» также заявления DECLARE не являются нормальными TSO-clist –

-1

Это код CLIST.

Раньше там было много CLIST-кода, и теперь REXX занял свое место. Но все же CLIST используется во многих системах мэйнфреймов.

+1

Нет, это не так. CLIST недоступен в среде, где CMS также доступен. Если вы действительно чувствуете, что это CLIST (под MVS/z/OS), объясните, как он так легко обращается к CMS, который представляет собой отдельную операционную систему, которая, хотя она может работать «рядом» с другой операционной системой, обе эти операционные системы что у них есть весь мир для себя. –

Смежные вопросы