Data Language One: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m disorfanata |
m Bot: (ri)aggiungo asterisco prima del template {{Collegamenti esterni}} (come da manuale) |
||
(13 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1:
{{organizzare|Paragrafo difficile da leggere e comprendere, soprattutto per un non esperto della tecnologia specifica.|informatica|settembre 2018}}
'''Data Language One''', abbreviato in '''DL/I'''<ref>{{Cita web|url=http://www-03.ibm.com/systems/z/os/zvse/products/database.html#dli|titolo=DL/I DOS/VS 1.10, DL/I VSE 1.11 and DL/I VSE 1.12 - 5746-XX1}}</ref> è il linguaggio utilizzato per accedere ai [[database]] [[International Business Machines|IBM]] [[Information Management System|IMS]], ed ai suoi sistemi di scambio dei dati.▼
{{Linguaggio di programmazione
|immagine =
|didascalia =
|data =
|versione =
|utilizzo =
|paradigmi =
|tipizzazione =
|specifiche =
|estensione =
|influenzato_da =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
▲'''Data Language One''', abbreviato in '''DL/I'''<ref>{{Cita web|url=
Viene implementato da un qualunque linguaggio di programmazione chiamando uno stub software, DFSLI000. Questo stub possiede delle interfacce per la gestione di svariati linguaggi di programmazione, ad esempio la chiamata CBLTDLI di un programma scritto in [[COBOL]]. Questo stub viene linkato al programma chiamante, passa la richiesta al sistema IMS e restituisce il risultato ed un codice di stato.▼
▲Viene implementato da un qualunque [[linguaggio di programmazione]] chiamando uno stub software, DFSLI000. Questo stub possiede delle interfacce per la gestione di svariati linguaggi di programmazione, ad esempio la chiamata CBLTDLI di un [[programma (informatica)|programma]] scritto in [[COBOL]]. Questo stub viene linkato al programma chiamante, passa la richiesta al sistema IMS e restituisce il risultato ed un codice di stato.
In qualunque database IMS, il più piccolo dato prelevabile è un ''segmento''. Ogni segmento è costituito da ''campi'', ognuno dei quali, tipicamente sarà una chiave. I segmenti sono disposti all'interno del database in una gerarchia, alla cima della quale si trova un segmento "radice". In ogni database sono consentiti 255 tipi diversi di segmento, su un massimo di 15 livelli. Un ''record'' di un database consiste in uno specifico segmento radice con tutti i segmenti figli da esso dipendenti — e non c'è alcun limite al numero dei segmenti che compongono un record in un database (escluse quelli fisici dello spazio di memorizzazione).
La struttura di un database viene presentata ad un programma applicativo come un ''PCB'' (''Program Control Block'', blocco di controllo del programma), che viene usato come uno dei [[parametro (programmazione)|parametri]] passati allo stub. Altri tipi di PCB vengono utilizzati per inviare e ricevere messaggi riguardanti una [[Transazione (
Quando detto programma ha accesso ad un segmento del database viene utilizzato come parametro anche un ''SSA'' (Segment Search Argument, argomento di ricerca del segmento), in modo da specificare quali segmenti sono necessari. Usualmente, un SSA contiene il tipo di segmento richiesto, e il contenuto di una qualunque chiave.
Riga 12 ⟶ 32:
Una tipica chiamata di un programma COBOL Potrebbe essere CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA. Il programma attenderebbe quindi automaticamente finché il dato richiesto non venga restituito, e posto nella Segment Area. Il codice di stato contenuto all'interno del PCB verrebbe aggiornato con caratteri segnaposto (se tutto è andato bene) o con qualche codice d'errore o messaggio informativo.
== Note ==
Riga 18 ⟶ 37:
==Collegamenti esterni==
* {{Collegamenti esterni}}
* {{cita web|1=http://www.geocities.com/s_sunil_raju/ims.htm|2=Una descrizione completa|lingua=en|accesso=28 dicembre 2007|urlarchivio=https://web.archive.org/web/20070810183903/http://www.geocities.com/s_sunil_raju/ims.htm#|dataarchivio=10 agosto 2007|urlmorto=sì}}
{{portale|informatica}}
[[Categoria:Linguaggi di programmazione]]
|