Che cos'è il linguaggio di controllo (CL)?

26 Marzo 2025

Il linguaggio di controllo (CL) è un linguaggio di alto livello linguaggio di programmazione utilizzato principalmente sui sistemi AS/400 e iSeries di IBM.

cos'è il linguaggio di controllo

Cosa si intende per linguaggio di controllo?

Il linguaggio di controllo è un linguaggio di programmazione specializzato sviluppato da IBM per l'uso sui suoi sistemi AS/400 e iSeries, ora noto come IBM i. È progettato principalmente per facilitare l' automazione e gestione delle attività a livello di sistema, fornendo un modo per controllare e automatizzare le operazioni su questi sistemi. CL è strettamente integrato con IBM i sistema operativo, consentendo agli utenti di scrivere programmi in grado di interagire con le risorse di sistema, gestire l'esecuzione dei lavori, manipolare file ed eseguire comandi del sistema operativo.

A differenza dei linguaggi di programmazione generici, CL si concentra sulla gestione del sistema e sull'automazione dei processi piuttosto che su processi complessi applicazione sviluppo. Consente agli utenti di controllare il flusso dei lavori, definire i parametri di sistema e gestire input Output operazioni senza richiedere una conoscenza approfondita del codice macchina di livello inferiore o degli interni del sistema. CL è particolarmente utile per amministratori di sistema che hanno bisogno di automatizzare attività ripetitive, come l'esecuzione di processi batch, la pianificazione di attività o la gestione file system.

Tipi di linguaggio di controllo

Il linguaggio di controllo può essere ampiamente categorizzato in diversi tipi in base a come viene utilizzato e alle funzionalità che fornisce. Di seguito sono riportati i tipi principali di linguaggio di controllo utilizzati nei sistemi IBM i.

Comandi CL

I comandi CL sono istruzioni individuali scritte in Control Language per eseguire attività specifiche sul sistema. Questi comandi possono essere utilizzati per vari scopi, come la gestione dei file, il controllo dell'esecuzione dei job, l'interazione con le risorse di sistema o l'esecuzione di attività a livello di sistema come pianificazione del lavoro. I comandi CL vengono in genere eseguiti in sequenza per automatizzare i processi o gestire le funzioni di sistema. Esempi includono WRKACTJOB (lavora con i lavori attivi) ed ENDTCPSVR (fine TCP server).

Programmi CL

Un programma CL è una raccolta di comandi CL raggruppati insieme per eseguire una serie di operazioni come parte di un'attività più ampia. I programmi CL consentono agli utenti di automatizzare procedure complesse e integrare più comandi in un singolo eseguibile. Questi programmi sono archiviati come oggetti all'interno del sistema IBM i e possono essere eseguiti in modalità batch o interattiva. Possono anche essere chiamati da altri programmi o comandi, facilitando un'automazione riutilizzabile ed efficiente. I programmi CL sono in genere utilizzati per automatizzare la manutenzione del sistema, la pianificazione dei lavori o elaborazione in lotti attività.

Procedure CL

Le procedure CL sono blocchi di codice riutilizzabili che contengono un set di comandi CL. A differenza dei programmi CL, le procedure CL non sono eseguibili autonomi, ma vengono chiamate all'interno di altri programmi o job CL. Forniscono un modo per modularizzare il codice e ridurre la ridondanza. Le procedure consentono agli amministratori di sistema e agli sviluppatori di scrivere codice più efficiente e gestibile suddividendo attività complesse in unità più piccole e riutilizzabili.

Strutture di controllo CL

Le strutture di controllo CL sono elementi all'interno del linguaggio CL che forniscono la logica per gestire il flusso di esecuzione. Queste strutture consentono agli utenti di creare percorsi di esecuzione condizionali, loop e altri costrutti decisionali. Le strutture di controllo chiave in CL includono IF, DO, FOR, GOTO ed ENDDO, che aiutano a controllare il flusso di esecuzione in base a determinate condizioni o attività ripetute. Queste strutture sono essenziali per creare programmi CL dinamici e reattivi che possono adattarsi a diversi runtime condizioni.

Controllo del lavoro CL

CL Job Control implica l'uso di comandi CL per gestire i lavori sul sistema IBM i. Questo tipo di CL consente agli utenti di controllare come e quando vengono eseguiti i lavori, monitorare lo stato dei lavori, gestire le priorità dei lavori e gestire gli errori correlati ai lavori. Il controllo dei lavori è un aspetto critico dell'amministrazione del sistema, che garantisce che le risorse siano utilizzate in modo efficiente e che le attività siano pianificate in base alla disponibilità e alle priorità del sistema. Comandi come CHGJOB (cambia lavoro) e SBMJOB (invia lavoro) sono comunemente utilizzati nel controllo dei lavori.

Esempi di linguaggio di controllo

esempi di linguaggio di controllo

Ecco alcuni esempi di comandi e programmi del linguaggio di controllo che dimostrano come è possibile automatizzare le attività o gestire le risorse di sistema sui sistemi IBM i:

1. Visualizzazione dei lavori attivi

Questo comando CL visualizza un elenco di tutti i lavori attivi sul sistema.

WRKACTJOB

Il comando WRKACTJOB è utilizzato per lavorare con i job attivi. Presenta un elenco di tutti i job attualmente in esecuzione, insieme al loro stato e ad altri dettagli rilevanti. È utile per gli amministratori di sistema per monitorare l'attività e le prestazioni dei job.

2. Termina TCP Server

Questo comando termina una connessione TCP/IP specifica server.

ENDTCPSVR SERVER(*ALL)

Il comando ENDTCPSVR arresta uno o più TCP servers. SERVERIl parametro (*ALL) specifica che tutti i TCP servers dovrebbe essere fermato. Questo è in genere utilizzato quando si esegue la manutenzione sulla rete o sul sistema.

3. Invia lavoro

Questo comando invia un lavoro al sistema per l'esecuzione.

SBMJOB CMD(CALL PGM(MYPGM)) JOB(MYJOB) JOBQ(MYJOBQ)

Il comando SBMJOB invia un job batch. In questo esempio, invia un job che richiama il programma MYPGM. Il job viene inserito nella coda dei job MYJOBQ e verrà eseguito come parte del flusso di job.

4. Modifica degli attributi del lavoro

Questo comando modifica la priorità del lavoro corrente.

CHGJOB JOB(*CURRENT) INQMSGRPY(*NONE)

Il comando CHGJOB viene utilizzato per modificare gli attributi del job. In questo esempio, l'opzione di risposta al messaggio del job viene modificata in *NONE, il che significa che il job non attenderà l'input dell'utente per le risposte al messaggio, spesso utilizzato nei job batch.

5. Esecuzione condizionale

Questo programma CL dimostra una semplice struttura di logica condizionale.

IF COND(&MYVAR *EQ 'YES')

  SNDMSG MSG('Condition is TRUE') TOUSR(*ALL)

ELSE

  SNDMSG MSG('Condition is FALSE') TOUSR(*ALL)

ENDIF

Questo programma CL controlla se la variabile &MYVAR è uguale a 'YES'. Se lo è, invia un messaggio che indica che la condizione è vera; in caso contrario, invia un messaggio che indica che la condizione è falsa.

A cosa serve il linguaggio di controllo?

Il linguaggio di controllo è utilizzato principalmente per automatizzare e gestire attività a livello di sistema su sistemi IBM i (in precedenza noti come AS/400 e iSeries). È progettato per aiutare gli amministratori di sistema e gli sviluppatori a controllare l'esecuzione dei lavori, gestire le risorse di sistema e automatizzare un'ampia gamma di processi. Alcuni degli utilizzi principali di CL includono:

  • Gestione del lavoro. CL viene utilizzato per controllare e gestire i lavori sul sistema IBM i. Ciò include l'invio di lavori, il monitoraggio dello stato dei lavori, la modifica degli attributi dei lavori e il controllo delle code dei lavori. Consente agli amministratori di automatizzare attività quali la pianificazione dei lavori, la gestione degli errori e la terminazione dei lavori.
  • Automazione del sistema. CL viene spesso utilizzato per automatizzare attività ripetitive di gestione del sistema. Queste attività possono includere l'esecuzione di backups, gestione delle risorse di sistema (come spazio su disco e memoria), avvio o arresto dei servizi di sistema ed esecuzione di processi batch. Questa automazione riduce l'intervento manuale e garantisce la coerenza delle operazioni.
  • Gestione di file e dati. CL consente agli utenti di manipolare i file e banche dati nell'ambiente IBM i. Può essere utilizzato per creare, eliminare, copiare o spostare file, nonché gestire record di database. CL consente una semplificazione gestione dei dati e semplifica le interazioni con i file system di IBM i.
  • Sicurezza e controllo degli accessi. I comandi CL sono spesso utilizzati per gestire l'accesso degli utenti, assegnare profili di sicurezza e controllare le impostazioni di sicurezza del sistema. Possono essere utilizzati per creare e gestire profili utente, controllare l'accesso a determinate risorse e applicare policy di sicurezza.
  • Configurazione e impostazione del sistema. CL può essere utilizzato per configurare le impostazioni di sistema, definire i parametri di sistema e impostare gli ambienti per applicazioni specifiche. Fornisce un modo per automatizzare la configurazione di vari componenti di sistema, assicurando che il sistema sia impostato correttamente ed efficientemente.
  • Gestione degli errori e risoluzione dei problemi. CL viene anche impiegato per monitorare lo stato di salute e le prestazioni del sistema. Se si verificano errori o vengono soddisfatte condizioni specifiche, i programmi CL possono generare avvisi, registrare errori o persino intraprendere azioni correttive automaticamente, aiutando gli amministratori a identificare e risolvere rapidamente i problemi.
  • Controllo ed esecuzione del programma. CL consente la creazione e l'esecuzione di programmi e script che può controllare altri programmi. I programmi CL possono chiamare altri programmi, passare parametri e gestire il flusso di esecuzione in base a condizioni o input specifici.

Come implementare il linguaggio di controllo?

L'implementazione del linguaggio di controllo su un sistema IBM i comporta la scrittura e l'esecuzione di programmi o comandi CL per automatizzare e gestire varie attività di sistema. Di seguito sono riportati i passaggi generali per implementare CL:

1. Accedere al sistema IBM i. Per implementare CL, è necessario innanzitutto accedere al sistema IBM i. È possibile connettersi al sistema tramite un emulatore di terminale o IBM Navigator per i, che fornisce un'interfaccia grafica per interagire con il sistema.

2. Scrivere un programma o un comando CL. I programmi CL vengono in genere scritti utilizzando l'ambiente di sviluppo integrato (IDE) di IBM i o direttamente da un interfaccia a riga di comandoÈ possibile scrivere singoli comandi CL che eseguono attività specifiche oppure creare programmi CL costituiti da più comandi CL, strutturati con logica condizionale, loopse altri meccanismi di controllo del flusso.

Ecco un esempio di un semplice programma CL:

PGM

DCL VAR(&MYVAR) TYPE(*CHAR) LEN(10)

CHGVAR VAR(&MYVAR) VALUE('HelloWorld')

SNDPGMMSG MSG(&MYVAR)

ENDPGM

Questo programma CL dichiara una variabile &MYVAR, le assegna il valore 'HelloWorld' e quindi invia tale valore come messaggio di programma all'utente.

3. Salvare il programma CL. Una volta scritto il codice CL, devi salvarlo come oggetto sul sistema IBM i. Questo viene in genere fatto con il comando CRTCLPGM (Create CL Program). Ecco un esempio di creazione di un programma CL:

CRTCLPGM PGM(MYLIB/MYPROGRAM) SRCFILE(MYLIB/QCLSRC) SRCMBR(MYPROGRAM)

Questo comando crea un programma CL dal codice sorgente in un file sorgente. MYLIB è la libreria in cui verrà creato il programma e QCLSRC è il file sorgente contenente il codice CL.

4. Compilare il programma CL (se necessario). Una volta salvati, i programmi CL vengono automaticamente compilati in un formato eseguibile dal comando CRTCLPGM. Tuttavia, se stai modificando o modificando un programma esistente, dovrai ricompilarlo utilizzando di nuovo il comando UPDPROD (Update Program) o il comando CRTCLPGM.

5. Eseguire il programma CL. Dopo aver salvato e compilazione, puoi eseguire il tuo programma CL usando il comando CALL. Ecco come chiamare un programma CL:

CALL PGM(MYLIB/MYPROGRAM)

Questo comando richiama ed esegue il programma MYPROGRAM CL dalla libreria specificata (MYLIB).

6. Utilizzare CL in processi batch o script. I programmi CL possono anche essere usati in lavori batch per automatizzare i processi di routine. Puoi pianificare questi lavori usando comandi di pianificazione lavori come SBMJOB (Submit Job). Questo comando invia un lavoro che eseguirà il programma CL MYPROGRAM. Il lavoro viene inserito nella coda lavori MYJOBQ per l'esecuzione.

7. Debug e risoluzione dei problemi. Se riscontri problemi, IBM i fornisce diversi strumenti per eseguire il debug e la risoluzione dei problemi dei programmi CL. Il comando STRDBG (Start Debugging) ti aiuta a eseguire il debug del tuo programma CL in modo interattivo. D'altro canto, puoi usare il comando MONMSG all'interno di CL per gestire gli errori e generare messaggi di errore appropriati per una diagnosi più semplice.

8. Distribuisci e automatizza. Dopo che i tuoi programmi CL sono stati testati e funzionanti, puoi distribuirli nel sistema. CL è comunemente utilizzato per automatizzare attività come backups, pianificazione dei lavori e gestione dei file. Sfruttando CL, puoi garantire che le attività ripetitive vengano eseguite automaticamente senza intervento manuale.

9. Mantenere e aggiornare i programmi CL. I programmi CL spesso richiedono manutenzione periodica o aggiornamenti per gestire nuovi requisiti di sistema o cambiamenti nei processi aziendali. È possibile modificare i programmi esistenti modificando il codice sorgente e ricompilandoli. Puoi anche aggiungere nuovi comandi o logica per migliorare la funzionalità.

Perché il linguaggio di controllo è importante?

controllo importanza del linguaggio

Il linguaggio di controllo è importante perché fornisce un modo semplificato ed efficiente per automatizzare e gestire le attività di sistema sui sistemi IBM i, come il controllo dei lavori, la manipolazione dei file e la manutenzione del sistema. Consentendo agli amministratori di sistema di scrivere ed eseguire script, CL elimina la necessità di un intervento manuale nelle attività di routine, migliorando la coerenza e l'affidabilità nelle operazioni di sistema. Offre inoltre flexcapacità di controllare il flusso di lavori, gestire le risorse di sistema e gestire gli errori, il tutto all'interno di un linguaggio semplice ma potente per la programmazione a livello di sistema.

L'integrazione di CL con il sistema operativo IBM i garantisce un'interazione fluida con altre applicazioni e componenti di sistema, rendendolo uno strumento essenziale per ottimizzare le prestazioni e la stabilità del sistema.

Ci sono delle sfide nell'implementazione del linguaggio di controllo?

L'implementazione del linguaggio di controllo sui sistemi IBM i può presentare alcune sfide, in particolare quando lo si integra in flussi di lavoro esistenti o si gestiscono attività complesse. Di seguito sono riportate alcune sfide comuni nell'implementazione di CL:

  • Curva di apprendimento. Sebbene CL sia relativamente semplice rispetto ad altri linguaggi di programmazione, potrebbe comunque esserci una curva di apprendimento per i nuovi utenti o amministratori di sistema che non hanno familiarità con la sua sintassi o struttura di comando. Comprendere le sfumature di CL, specialmente in attività di sistema complesse, potrebbe richiedere tempo per coloro che non hanno già esperienza con gli ambienti IBM i.
  • Strumenti di debug limitati. I programmi CL spesso non dispongono degli strumenti di debug avanzati disponibili in altri linguaggi di programmazione. Mentre il debug di base è possibile utilizzando il comando STRDBG, non è robusto o intuitivo come gli ambienti di debug presenti in altri linguaggi. Ciò può rendere la risoluzione dei problemi nei programmi CL più dispendiosa in termini di tempo e difficile.
  • Gestione degli errori. Le capacità di gestione degli errori di CL sono in qualche modo limitate rispetto ai moderni linguaggi di programmazione. Mentre la gestione degli errori di base può essere eseguita utilizzando il comando MONMSG, funzionalità di gestione degli errori più sofisticate, come la gestione delle eccezioni o la registrazione, non sono integrate nel linguaggio per impostazione predefinita. Ciò può rendere più macchinosa la gestione degli errori nei programmi CL complessi.
  • Scalabilità e complessità. Per sistemi più grandi o più complessi, la manutenzione e il ridimensionamento dei programmi CL diventano impegnativi. CL è progettato per attività a livello di sistema e non è destinato allo sviluppo di applicazioni complesse, il che può portare a difficoltà quando si cerca di integrare gli script CL in flussi di lavoro di applicazioni più grandi. Man mano che i sistemi aumentano in complessità, il numero di programmi CL e le loro interdipendenze possono diventare più difficili da gestire.
  • Mancanza di funzionalità avanzate. CL non è un linguaggio di programmazione di uso generale e non presenta alcune delle funzionalità avanzate presenti nei linguaggi moderni, come programmazione orientata agli oggetti, multi-threading e librerie complete. Ciò può renderlo meno adatto allo sviluppo di applicazioni complesse e può limitarne flexbilità in determinati scenari.
  • Dipendenza dal sistema IBM i. CL è strettamente legato al sistema operativo IBM i e non è trasferibile su altre piattaforme. Se un'organizzazione decide di migrare dal sistema IBM i, i programmi CL potrebbero dover essere riscritti o adattati per il nuovo ambiente, creando costi aggiuntivi e requisiti di risorse per la migrazione.
  • Versionamento e compatibilità. Nel tempo, i sistemi IBM i ricevono aggiornamenti e nuove versioni del sistema operativo. Questi aggiornamenti possono talvolta introdurre problemi di compatibilità con programmi CL più vecchi, richiedendo agli sviluppatori di rivedere e modificare il codice esistente per garantire che funzioni con la versione di sistema più recente.

Anastasia
Spasojevic
Anastazija è una scrittrice di contenuti esperta con conoscenza e passione per cloud informatica, informatica e sicurezza online. A phoenixNAP, si concentra sulla risposta a domande scottanti su come garantire la robustezza e la sicurezza dei dati per tutti i partecipanti al panorama digitale.