2013-02-21 13 views
9

Muszę znaleźć jakąś logikę ze starego kodu źródłowego. Mój menadżer mówi, że jest COBOL, nie jestem tego pewien. Próbowałem znaleźć niektóre słowa kluczowe na samouczkach Cobol bez żadnego szczęścia.Czy ktoś może mi powiedzieć, jaki to jest język?

Oto niektóre fragmenty kodu:

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 Prawdopodobnie nie jest to pewne? –

+1

Prawdopodobnie SAS? Oto link do pliku 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 jest SAS językiem programowania? Zerknąłem na link i zrozumiałem, że to rodzaj narzędzia, czy nie? – Neir0

Odpowiedz

24

EDYTOWANIE:

To mnie wkurzyło. Rozumowanie, że nie było i nie Rexx EXEC, ale był wyraźnie działa w systemie CMS, który opuścił EXEC 2.

Jednak teraz uważam, że jest sama NOMAD. Trudne do potwierdzenia, ale tutaj, http://www.tallant.com/portfolio/webpages/web/nomad/nomad2.html, są przykładami niektórych kodu.

czy to działa z/obok EXEC 2, nie wiem. Może po prostu działać w podobny sposób lub po prostu mieć wsparcie dla "wystrzelenia" do CMS lub CP, jeśli jest to konieczne do wykonania "funkcji systemowych".

To prawdopodobnie nie jest ...

To EXEC2.

Istnieją dwa „stare” Języki poleceń z VM/CMS, najstarszy i najbardziej ograniczone, jest EXEC. Rexx był "nowym" językiem poleceń.

Jeśli uważasz, że jest to złe, wyobraź sobie, czym jest EXEC. EXEC i EXEC2 mają podobieństwa do CLIST, ale nie wiem, czy mają wspólnego przodka.

Tak, to jest to, co jest w tych dniach „język shell-scripting” zrobić z systemem operacyjnym IBM VM, który jest oryginalny „Virtual Machine”, a która obejmuje możliwość uruchamiania wielu kopii „single-user system operacyjny "o nazwie CMS (Conversational Monitor System, jak sądzę), który działa tylko na VM i gdzie pojawia się" CMS FILEDEF "(jest to" wystrzeliwanie "do CMS), jak również VM może działać jako pojedynczy lub wielokrotny instancje, pełnowymiarowe systemy operacyjne IBM, takie jak DOS/VSE, MVS, VM (ponownie, które mogą następnie uruchamiać inne systemy operacyjne "Gość") i obecnie z/OS, z/VSE i, nie wiem, ale prawdopodobnie Linux.

Edytuj. To bardzo zła praktyka, że ​​zawiera komentarz "/ " " /". Jeśli pierwszy wiersz pliku zaczyna się i kończy tak, to przyjmuje się, że jest to Rexx. VM obsługuje wszystkie trzy "języki", ale uruchamia różne interpretatory w zależności od sposobu uruchomienia programu.

Z pamięci EXEC zaczyna się od * (komentarz), EXEC2 tego nie potrzebuje, a Rexx z/* do * /, który w CMS może obejmować więcej niż jedną linię.

+1

Pomimo dwóch edycji już zapomniałem wspomnieć, że VM jest systemem operacyjnym IBM Mainframe. –

+0

Może to być dobry pomysł, aby zaznaczyć, że jest to prawdopodobnie procedura NOMAD z osadzonym EXEC2. Kilka instrukcji w skrypcie musi być NOMAD, ponieważ nie są to EXEC2. Coś w rodzaju tego, co dzieje się, gdy dokument HTML zawiera osadzony javascript, wynikiem nie jest ani czysty HTML, ani javascript. Dobra zdzira ... – NealB

+0

Szukałem więcej. EXEC 2 uruchamia się i TRACE. Z pamięci (zadziwiły się tylko zeskanowane dokumenty) polecenie EXEC 2, które nie zostało "rozpoznane", ponieważ EXEC 2 trafiłoby do "środowiska", z którego zostało uruchomione, jeśli nadal nie zostanie rozwiązane do CMS, jeśli nadal nie zostanie rozwiązane do CP lub coś w tym rodzaju, więc łatwo można uzyskać taki rodzaj miksu. –

-1

nie jestem tego pewien, ale wygląda na to może być REXX. Spójrz:

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

+0

Dzięki. Szybko na to spojrzałam. I zauważam, że użycie zmiennych jest zupełnie inne. W moich fragmentach zmienne są używane poprzednio z & Ex: & ALLPROG = "YES"; – Neir0

+0

To nic takiego jak Rexx, jego Clist lub jej odmiana –

3

To CLIST. Powszechnie spotykane na IBM Mainframe.

EDIT

Na drugim odbiorze, to nie jest clist. Wygląda jednak na bliskiego kuzyna CLIST (z których starsze systemy IBM miały kilka wariantów). Domyślam się, że jest to dość stare EXEC, działające pod CMS.

Linia:

CMS FILEDEF QAA2 DISK QAA2 NOMAD A6 (LRECL 100; 

wygląda ucieczki CMS alokacji plików, dzięki czemu kojarzy mi się z CMS.

Ktoś zasugerował, że może to być SAS. SAS na systemach IBM może mieć również wygląd CLIST-owy, ale nie sądzę, że jest to SAS (pracował z SAS kilka razy bardzo dawno temu, więc również mogę to poprawić).

Nie jestem więc pewien, że to EXEC2 albo. Wygrzebałem z VM SP EXEC 2 Reference Manual. Niektóre rzeczy w tym przykładzie nie wydają się "tłumaczyć" na EXEC2: PROC, DECLARE, LENGTHB, CALL i CAT na przykład nie są opisane w instrukcji. Używałem CMSa w latach 80-tych i musiałem pisać rzeczy podobne do tego, ale to było dawno temu i naprawdę nie pamiętam zbyt wiele składni.

O wszystko, co mogę powiedzieć to to, że ten materiał wygląda jak derivitave z języków skryptowych występujących w systemach IBM w połowie lat 1980-tych.

To na pewno nie jest COBOL lub REXX.

+0

Kolejna linia problemu to "SCREEN QUERY LOADED QAAF OTW DO;" także instrukcje DECLARE nie są normalne TSO-clist –

-1

To jest kod CLIST.

Wcześniej istnieje wiele kodów CLIST, a teraz REXX zajął własne miejsce. Ale nadal CLIST jest używany w wielu systemach Mainframe.

+1

Nie, nie jest. CLIST nie jest dostępny w środowisku, w którym dostępny jest również CMS. Jeśli naprawdę uważasz, że jest to CLIST (pod MVS/z/OS), proszę wyjaśnić, w jaki sposób ma on tak łatwy dostęp do CMS, który jest oddzielnym systemem operacyjnym, który mimo że może działać "obok" innego systemu operacyjnego, oba te systemy operacyjne że mają cały świat dla siebie. –

Powiązane problemy