La programmazione Istruzioni effettive Istruzioni effettive e loro

Transcript

La programmazione Istruzioni effettive Istruzioni effettive e loro
Informatica Giuridica
Informatica giuridica.
Docente: Giovanni Sartor
Istruzioni effettive
La programmazione
Istruzione effettiva:
–
il sistema incaricato di eseguirla può
interpretarla senza incertezze, e
compiere l’operazione corrispondente.
Giovanni Sartor
© G. Sartor
1
© G. Sartor
2
2
Informatica Giuridica
Informatica Giuridica
Istruzioni effettive e loro esecutori
Istruzioni di Javascript
Quali sono le istruzioni effettive? Dipende dal
sistema incaricato di eseguirle
–
–
–
3
Visualizza una scritta (prog. 1.0.0 saluti.htm)
Visualizza due scritte a video (prog. 1.0.1
secondi saluti.htm)
Somma due numeri (prog. 1.0.2. prima
somma.htm)
Concatenamento di due stringhe (prog. 1.0.3.
concatena stringhe.htm)
Per una comune calcolatrice tascabile?
Per una calcolatrice scientifica?
Per l’interprete di Javascript?
© G. Sartor
© G. Sartor
4
3
4
Informatica Giuridica
Informatica Giuridica
Un classico esempio: la procedura
per il caffe’
Algoritmo (procedura effettiva)
Procedura effettiva (algoritmo). Procedimento
che soddisfa le seguenti condizioni:
1.
comprende solo istruzioni effettive;
indica la prima operazione da eseguire;
individua per qualsiasi operazione della procedura,
l’operazione immediatamente successiva
(Si conclude in un tempo finito)
3.
–
–
–
–
2.
4.
5.
6.
5
© G. Sartor
5
6
Introdurre una moneta da 500 lire.
Inserire il bicchierino nell’apposito spazio.
Premere il bottone al di sopra della scritta “caffè”.
Se esce il caffè, attendere il segnale sonoro e quindi
ritirare il bicchiere.
Altrimenti premere il bottone al di sopra della scritta
“restituzione” e ritirare la moneta.
Ricomincaire da 1
© G. Sartor
6
1
Informatica Giuridica
Informatica Giuridica
Start
La macchina di Turing (I)
Introdurre una moneta da 500 lire
Inserire il bicchierino nell’apposito spazio.
•Premere il bottone al di sopra della scritta “caffè”.
No
Si’
Esce il caffe’
Premere il pulsante restituzione
Attendere il segnale sonoro
e ritirare il bicchiere
Ritirare la moneta
7
Fine
© G. Sartor
7
8
© G. Sartor
8
Informatica Giuridica
Informatica Giuridica
La macchina di Turing (II)
La macchina di Turing (III)
La macchina di Turing funziona in questo modo:
La macchina di Turing si compone di due elementi:
–
–
un nastro illimitato suddiviso in quadratini, sul quale si possono
scrivere i simboli di un alfabeto
un’organo di controllo, dotata di una testina di lettura e scrittura,
–
–
L’organo di controllo
–
–
–
–
9
Può leggere e scrivere simboli sulla casella sottostante,
Può spostarsi sul nastro, a destra o a sinistra, oppure fermarsi
Può assume diversi stati
Contiene una tabella che gli dice che fare (che scrivere, dove
spostarsi, quale stato assumere), quando si trova in un
determinato stato, e legge un determinato simbolo
© G. Sartor
quale simbolo scrivere,
se restare fermo, spostarsi a destra o sa sinistra, e
quale nuovo stato assumere.
finchè non decide di fermarsi
10
9
All’inizio dell’elaborazione sul nastro sono indicati I
dati di ingresso
L’organo di controllo legge il simbolo registrato nella
casella sotto della testina, e in base del suo stato
interno e al simbolo letto, determina
© G. Sartor
10
Informatica Giuridica
Informatica Giuridica
La macchina di von Neumann (1)
Macchina di Turing e computabilità
Unità centrale di elaborazione
Tutti i problemi computabili (tali che sia possibile
specificare una funzione che collega i dati di
ingresso ai dati di uscita, cioè determinare
univocamente l’output corrispondente ad ogni
possibile input), sono risolvibili da una una
macchina di Turing
Qualsiasi algoritmo può essere tradotto in una
tabella eseguibile da una macchina di Turing
11
© G. Sartor
11
Registri
Memoria
centrale
12
© G. Sartor
12
2
Informatica Giuridica
Informatica Giuridica
Macchina di von Neumann e
programmazione
La macchina di von Neumann (2)
Un programma per una macchina di Von
Neumann consiste, pertanto:
L’elaborazione si svolge come segue:
–
–
–
–
un’istruzione e i dati che tale istruzione deve manipolare
vengono trasferiti o “caricati” dalla memoria nei registri;
l’unità centrale esegue l’istruzione;
gli eventuali risultati vengono trasferiti dai registri alla memoria;
si passa all’istruzione successiva (o a quella specificata
dall’istruzione di controllo, se l’istruzione eseguita era di questo
tipo).
–
–
nella descrizione/prescrizione di una sequenza di
operazioni elementari sui dati,
combinate con istruzioni di controllo, che modificano
l’ordine nel quale eseguire le operazioni sui dati
NB: L’elaborazione è sequenziale: viene eseguita
un’istruzione per volta
13
© G. Sartor
14
13
© G. Sartor
14
Informatica Giuridica
Informatica Giuridica
Dal linguaggio macchina ai
linguaggi programmazione
Il linguaggio macchina
Programma: algoritmo formulato in un
linguaggio di programmazione.
–
–
–
Il linguaggio comprensibile (eseguibile) da parte
dell’hardware. Consiste dei:
Linguaggio macchina;
Assembler;
Linguaggi di altro livello.
–
–
Il linguaggio macchina è
Computer + linguaggio di programmazione =
–
15
comandi eseguibili dall’hardware;
espressi in codici binari
–
macchina virtuale che esegue i programmi scritti nel
linguaggio di programmazione.
© G. Sartor
–
16
15
Dipendente dall’hardware (un linguaggio macchina
può essere usato solo su un computer);
Difficile da comprendere per l’uomo
© G. Sartor
16
Informatica Giuridica
Informatica Giuridica
Il linguaggio assembler
Assembler:
abbreviazione
linguaggio macchina.
–
17
Un esempio
simbolica
del
Somma i numeri memorizzati agli indirizzi di memoria 8
e 5, e memorizza il risultato all’indirizzo 10.
le istruzioni consistono di brevi parole dette "codici
mnemonici" (che possono essere ricordate più
facilmente dei corrispondenti valori binari).
© G. Sartor
17
18
© G. Sartor
18
3
Informatica Giuridica
Istruzioni in linguaggio assembler
Linguaggio assembler e linguaggio
macchina
LOAD 8
LOAD 8 = 010100 001000
Prendi il numero registrato
all’indirizzo 8 della memoria
e caricalo in ALU
Aggiungi il numero
all’indirizzo 5 a quello
in ALU
Prendi il numero in ALU e
registralo in memoria,
all’indirizzo 10
ADD 5
STORE 10
19
Informatica Giuridica
© G. Sartor
20
19
LOAD (010100) =
codice dell’operazione
(opcode)
8 (001000)
Indirizzo dell’operando
=
© G. Sartor
20
Informatica Giuridica
Informatica Giuridica
In un linguaggio di programmazione
di altro livello
Linguaggi di alto livello
//creazione delle variabili
var primoNumero,
secondoNumero;
//assegnamento di valori alle variabili
primoNumero = 3;
secondoNumero = 5;
//somma dei due numeri
somma = primoNumero + secondoNumero
Sono più simili al linguaggio umano
Fanno astrazione dal funzionamento concreto del
computer:
–
–
non parlano di registri, celle di memoria, indirizzi, caricamento o
spostamento di bit …,
parlano di variabili, costanti, assegnamenti, strutture di controllo,
procedure …
Sono indipendenti dalla macchina (posso eseguire lo
stesso programma su diversi modelli di elaboratore)
21
© G. Sartor
22
21
© G. Sartor
22
Informatica Giuridica
Informatica Giuridica
Dal linguaggio macchina ai
linguaggi di alto livello
Inteprete o compilatore
Compilatore:
Linguaggio macchina:
–
–
puo’ essere eseguito direttamente dall’hardware
Linguaggio assembler:
–
–
viene tradotto in linguaggio macchina da un software
chiamato assemblatore (assembler)
Interprete:
Linguaggio di altro livello:
–
23
–
23
Finché non è stato eseguito tutto il programma
traduce una riga per volta,
la esegue immediatamente,
passa alla riga successiva
viene tradotto nel linguaggio macchina da un
interprete o un compilatore.
© G. Sartor
traduce l’intero programma (il codice sorgente) in un
programma in linguaggio macchina (il codice oggetto o codice
eseguibile),
Il codice oggetto viene memorizzato per essere usato nel
seguito.
24
© G. Sartor
24
4
Informatica Giuridica
Informatica Giuridica
Un linguaggio interpretato:
Javascript
Compilatore ed inteprete
Programma
sorgente
in linguaggio di
alto livello
COMPILATORE
Singola istruzione
in linguaggio di
alto livello
25
INTERPRETE
Programma
oggetto
in linguaggio
macchina
Javascript: creato da Netscape, ma oggi
standard per la creazione di pagine web
dinamiche
Consente di redigere programmi (scripts)
all’interno di pagine web, che vengono eseguiti
quando la pagina viene caricata dal browser (il
programma che visualizza le pagine web)
È un linguaggio interpretato
È un linguaggio object oriented
Traduzione della
singola istruzione
in linguaggio
macchina
© G. Sartor
26
25
© G. Sartor
26
Informatica Giuridica
Informatica Giuridica
Che cosa dice un programma
al computer
I dati
Il programma:
–
–
–
Variabile:
–
Indica come elaborare i dati,
Secondo istruzioni,
Combinate in strutture di controllo.
Ogni variabile ha:
–
–
–
27
© G. Sartor
28
27
locazione di memoria avente un nome, in cui possono
essere caricati (copiati) contenuti o valori si un certo tipo
Un nome (salarioLordo)
Un tipo (integer)
Un valore (“5000000”)
© G. Sartor
28
Informatica Giuridica
Informatica Giuridica
Variabili
Le istruzioni
salarioLordo
Dichiarazione di variabile
–
5000000
Crea le variabili (predispone le zone di memoria e attribuisce
loro dei nomi)
var salarioLordo, salarioNetto;
Assegnamento
–
nomeCognome
Memorizza un contenuto (a destra) nella variabile (a sinistra)
Un valore particolare
–
Giovanni Sartor
–
–
–
29
© G. Sartor
29
salarioLordo = 1000000;
imposta = 350000;
Il risultato di un’operazione
30
salarioNetto = salarioLordo – imposta;
NB. In Javascript “=“ non indica l’eguaglianza ma
l’assegnamento
© G. Sartor
30
5
Informatica Giuridica
Informatica Giuridica
Gli operatori
Le istruzioni
Nel lato destro delle istruzioni di assegnamento vi
possono essere operazioni.
La variabile memorizza il risultato dell’operazione.
Esempi:
Istruzioni di input: acquisiscono informazioni dai
disposiviti di input.
–
Concatenamento
nomeCognome = “Giovanni “ + “ Sartor”;
- Somma
somma = 5 + 8;
–
+ Addizione
-, / , *, %,
31
primoNumeroStringa = window.prompt("inserisci il
tuo stipendio");
Istruzioni di output
–
–
5+7
© G. Sartor
32
31
alert(“stipendio = “ + stipendio);
document.write (“stipendio = “ + stipendio)
© G. Sartor
32
Informatica Giuridica
Informatica Giuridica
Un programma
I diagrammi di flusso (I)
Rappresenta il flusso (l'ordine) del
diagramma
Programma che effettua il calcolo del
dell’imposta e del salario netto (1.0.4. salario e
imposta .htm)
Simbolo terminale
Indica l'inizio o la fine di un
programma o di un modulo di
programma. Esempi:
inizio
fine
Simbolo di elaborazione
Rappresenta una elaborazione. Esempi:
calcola lo
stipendio
33
© G. Sartor
34
33
34
Informatica Giuridica
I diagrammi di flusso (II)
sì
fine del file
Simbolo di input/output
sì
Qualifica = 1
In linguaggio macchina e in assembler (e in alcuni
linguaggi di programmazione di alto livello) l’ordine
dell’esecuzione delle istruzione è determinato da
istruzioni di salto.
Istruzione di salto (jump, goto):
no
Rappresenta un'operazione di
input/output. Esempi:
scrivi lo
stipendio
35
Istruzioni di controllo: I salti
Rappresenta una decisione basata su una
condizione: se la condizione risulta vera viene
scelta l'uscita "sì"; se la condizione risulta
falsa, viene scelta l'uscita "no". Esempi:
no
© G. Sartor
35
⇐ 30000
© G. Sartor
Informatica Giuridica
Simbolo di decisione
PagaOraria
–
–
write(Nome)
36
Contenuto: prescrive che l’ulteriore elaborazione continui a
partire da un certo punto (indirizzo di memoria, riga del
programma, posizione nel programma)
Effetto: trasferisce il controllo al punto indicato
© G. Sartor
36
6
Informatica Giuridica
Informatica Giuridica
Salti incondizionati e condizionati
Salto incondizionato
Salto incondizionato
X=0
1. X = 0;
2. X = X+1;
3. Goto 2
Problema: Un ciclo infinito (loop)!
X = X+1
Soluzione: Salto condizionato
1. X = 0;
2. X = X+1;
3. If X < 10 go to 2
37
© G. Sartor
38
37
© G. Sartor
38
Informatica Giuridica
Informatica Giuridica
Salto condizionato
Condizioni e decisioni
Il computer
X=0
–
–
X = X+1
Esegue istruzioni;
Effetta scelte (prende decisioni) sulla base di
condizioni
Condizione
–
X < 100
–
39
© G. Sartor
40
39
espressione vera o falsa (esprime una proposizione
anziché una istruzione)
di regola confronto tra numeri o stringhe
© G. Sartor
40
Informatica Giuridica
Informatica Giuridica
Le condizioni
Programmazione strutturata
Condizioni atomiche: uguale, maggiore, diverso
X == 3
X>5
cognome != “Sartor”
Le condizioni possono essere combinate mediate
gli operatori logici
3 < X && X < 1
nome == “Giovanni” && cognome == “Sartor”
41
© G. Sartor
41
Programmazione strutturata:
–
–
combina le istruzioni mediante strutture di controllo,
evita le istruzioni di controllo (i salti).
Strutture di controllo:
–
–
–
Sequenza
Selezione,
Ripetizione
Le tre strutture consentono di esprimere qualsiasi
algoritmo
Javascript non utilizza l’istruzione goto
42
© G. Sartor
42
7
Informatica Giuridica
Informatica Giuridica
La sequenza (I)
La sequenza (II)
imposta = salarioLordo * aliquota
{<istruzione1>; <istruzione2>; …}
Le istruzioni vengono eseguite nella sequenza
indicata (prima istruzione1, poi istruzione2, ecc.}
Esempio : 1.0.4. salario e imposta .htm
43
© G. Sartor
salarioNetto = SalarioLordo - imposta
44
43
© G. Sartor
44
Informatica Giuridica
Informatica Giuridica
La selezione (if …}
La selezione (IF … ELSE) (I)
If (<condizione>
If (<condizione>) {<istruzione>}
–
–
{<istruzione1>}
else
{<istruzione2>}
– Se (if) la condizione è vera allora viene eseguita
istruzione1
– 4646
Se (if) la condizione è vera allora viene eseguita
l’istruzione
Se la condizione e’ falsa, allora l’istruzione seguente
non viene eseguita
Esempio: 1.1.1 if.htm
Esempio 1.1.2 if else.htm, 1.1.3 if else
reddito.htm
45
© G. Sartor
46
45
© G. Sartor
46
Informatica Giuridica
Informatica Giuridica
La selezione (IF … ELSE) (I)
sì
Reddito > 6000000
document.writeln(“Devi presentare la
dichiarazione dei redditi”)
47
© G. Sartor
47
La ripetizione (while) (I)
no
While
(<condizione>)
{<istruzione>}
L’istruzione viene ripetuta finché la condizione
risulta vera.
Quando l’espressione risulta falsa la ripetizione
cessa e si passa all’istruzione successiva
Esempio: 1.1.4. myfirstwhile.htm
document.writeln(“Non devi presentare
la dichiarazione dei redditi”)
48
© G. Sartor
48
8
Informatica Giuridica
Informatica Giuridica
La ripetizione (while) (II)
Il metodo top-down
conta = 0
sì
conta < 100
Metodo top-down: scomposizione progressiva del
problema e delle azioni (istruzioni) che lo risolvono.
Favorisce la divisione del lavoro:
no
Analisi: definizione della struttura generale del programma, dei
moduli principali che lo compongono, e delle operazioni astratte
svolte da ciascuno di essi, le cosiddette “specifiche”.
Programmazione: realizzazione dei programmi che svolgono le
singole operazioni individuate nella fase di analisi.
–
document.writeln(conta)
–
conta = conta + 1)
© G. Sartor
49
© G. Sartor
50
49
50
Informatica Giuridica
Informatica Giuridica
Un esempio di applicazione del
metodo top-down
Primo raffinamento
Il problema (descrizione più astratta):
–
1.
Calcola il voto medio ottenuto dagli studenti del corso
Calcola il voto medio ottenuto dagli studenti
del corso
1.
NB: la descrizione non e’ in linguaggio di
programmazione ma e’ una astrazione espressa
linguaggio naturale (pseudocodice)
© G. Sartor
51
2.
3.
52
51
Inizializza le variabili
Inserisci, somma e calcola i voti
Calcola e stampa la media
© G. Sartor
52
Informatica Giuridica
Informatica Giuridica
Secondo raffinamento
1.
Secondo raffinamento (continua)
Inizializza le variabili
3. Calcola e visualizza la media
Inizializza il totale a 0
Inizializza il contatore voti a 0
2.
Calcola la media dividendo il totale per il contatore
voti
Visualizza la media
Inserisci, somma e calcola i voti
Leggi il primo voto
Finché l’utente non ha inserito la sentinella,
Aggiungi il voto al totale parziale
Aggiungi 1 al contatore voti
Leggi il prossimo voto
53
© G. Sartor
53
54
© G. Sartor
54
9
Informatica Giuridica
Informatica Giuridica
Lo pseudocodice
Il programma
Inizializza il totale parziale a 0
Inizializza il contatore voti a 0
(1.1.5. media.htm)
Leggi il primo voto
Finché l’utente non ha inserito la sentinella,
Aggiungi il voto al totale parzilae
Aggiungi un al contatore voti
Inserisci il prossimo voto
Assegna media = totale diviso per il contatore voti
Visualizza la media
55
© G. Sartor
56
55
© G. Sartor
56
Informatica Giuridica
Informatica Giuridica
Procedure e funzioni
Moduli in Javascript
È conveniente dividere programmi complessi in
moduli
La scomposizione e’ favorita dalla
programmazione strutturata
–
57
I moduli sono funzioni
–
L’utente può definire proprie funzioni
–
Esempio: 1.1.6 dadi.htm, 1.1.6 upper_lower.HTM
rollDice()
58
57
Vi sono funzioni predefinite (disponibili nel
linguaggio, come gli operatori matematici
die1 = Math.floor( 1 + Math.random() * 6 ).
Ogni modulo comprende una struttura, che al suo
interno puo’ comprendere altre struttura (ogni
struttura ha un unico punto di ingresso ed uscita)
© G. Sartor
–
© G. Sartor
58
Informatica Giuridica
Informatica Giuridica
Programmazione ad eventi (eventdriven)
Il software non e’ piu’ un unico algoritmo, da
eseguirsi in un ordine predefinito, ma:
–
–
59
In particolare, nelle applicazioni web:
–
Consiste di un insieme di moduli (funzioni per la
trattazione degli eventi – event handler)
Ciascuno dei quali può essere attivato in vari modi al
verificarsi di determinati eventi
© G. Sartor
59
–
–
60
Il browser (Explorer, Netscape, etc.) e’ in attesa di
eventi (listening for events)
L’utente realizza gli eventi interagendo con
l’interfaccia grafica (e.g. clicca su un bottone)
Il browser, al verificarsi di ogni evento, attiva l’handler
(la funzione) corrispondente
© G. Sartor
60
10
Informatica Giuridica
Informatica Giuridica
Un oggetto: il puntatore sullo
schermo
Gli oggetti
Il mondo di appare abitato da oggetti, entit:
–
–
Attributi:
Caratteristiche (attributi)
Comportamenti (metodi)
–
–
Automobile
–
–
–
–
Attributi: forma, colore,
Metodi: corre quando si accelera, rallenta quando si
frena, gira quando si manovra il volanteecc.
Metodi:
–
–
61
© G. Sartor
62
61
forma,
grandezza,
colore,
ecc.
si sposta allo spontarsi del mouse
cambia forma a seconda del contesto in cui si trova
© G. Sartor
62
Informatica Giuridica
Informatica Giuridica
Oggetti composti e oggetti
componenti
Un oggetto: un documento web
Window
Attributi:
–
–
–
–
–
–
bgColor
fgColor,
title
url
… Esempio 1.1.7. list properties.htm
All
Anchors
Applets
Body
Forms
images
…
Metodi
–
–
–
63
Document
write
Open
…
–
–
–
© G. Sartor
64
63
Frames
History
Navigator
© G. Sartor
64
Informatica Giuridica
Informatica Giuridica
Caratteristiche degli oggetti
I rapporti tra gli oggetti
Gli oggetti
–
–
–
–
65
Classe: categoria di oggetti
Incapsulano le propie caratteristiche e metodi
(encapsulation)
Nascondono al proprio interno dati che essi
contengono (data hiding)
Operano secondo I propri metodi (polimorfismo)
Comunicano con l’esterno mediante interfaccie
© G. Sartor
65
–
Ogni oggetto è un’istanza di una certa classe
Strutture: relazioni tra classi
–
–
Specializzazione
Mereologia (Tutto-parti)
Ereditarietà: trasmissione delle caratteristiche
del genere alle sue specie.
66
© G. Sartor
66
11
Informatica Giuridica
Informatica Giuridica
L’interazione con gli oggetti
Programmazione ad oggetti
Chi interagisce con un oggetto non ha bisogno
di conoscerne
–
–
Si riduce la distinzione tra dati e programmi
–
la struttura interna,
le modalità del funzionamento
–
Tendenziale passaggio da top down a bottom
up nello sviluppo di applicazioni
Deve conoscerne
–
–
gli oggetti sono dati, ma contengono i metodi (i
programmi)
Anche le procedure (I programmi) sono oggetti (dati)
l’intefaccia
I comportamenti
Basta sia in grado di comunicare con l’oggetto
67
© G. Sartor
68
67
© G. Sartor
68
Informatica Giuridica
Informatica Giuridica
Gli agenti
La programmazione ad agenti
Oggetti dotati di un crescente “autonomia”
Non solo agiscono, ma agiscono in modo
intelligente
–
–
Lo sviluppo del software come creazione di una
società
Non c’ è più un piano globale che governi le
à
relazioni tra gli individui (i programmi): ognuno
bada a se stesso
Non c’ è un deposito centrale della conoscenza
(la base di dati o la mente del programmatore):
ogni modulo usa la propria conoscenza per i
propri fini
Scelgono come comportarsi in base al contesto in cui
si trovano, e alle proprie finalità
Hanno capacità adattiva
Esempi:
–
–
69
Agenti software per il commercio elettronico
Assistenti personali digitali
© G. Sartor
70
69
© G. Sartor
70
Informatica Giuridica
Informatica Giuridica
Prospettive e problemi della
programmazione ad agenti (I)
Prospettive e problemi della
programmazione ad agenti (I)
Aumenta la flessibilità del sistema
–
–
–
Problema: come governare le interazioni delle
componenti autonome
Capacità di affrontare situazioni non previste dal
programmatore
Capacità di evitare il peggio in situazioni critiche
Capacità di acquisire conoscenze implicite (e.g.
mediante metodi evoluzionistici)
–
–
Un diritto del software come diritto della
relazione tra agenti software?
Problema:
–
71
Il mondo virtuale del software sta sfuggendo di mano
ai propri creatori?
© G. Sartor
71
Mediante meccanismi di mercato (meccanismi di
autoregolamentazione). E.g. come ottimizzare l’uso
di risorse limitate (e.g. una stampante)?
Mediante regole
72
© G. Sartor
72
12
Informatica Giuridica
Informatica Giuridica
Nuovi problemi “giuridici”
La programmazione dichiarativa
Gli agenti software
–
–
–
–
–
–
–
73
Programmazione dichiarativa:
–
Sono soggetti a regole giuridiche? E quali?
Hanno capacità giuridica?
Hanno capacità d’agire?
Possono essere rappresentanti?
Hanno una propria volontà giuridicamente rilevante?
Hanno stati psicologici (conoscenza, intenzione,
buona fede)?
Sono responsabili delle proprie azioni?
© G. Sartor
–
Sono dichiarazioni
–
–
sia i fatti elementari (i dati in senso stretto)
sia le regole che ne definiscono le relazioni.
Il programma è una
–
–
74
73
sviluppa programmi composti di conoscenze esplicite
(dichiarative)
il computer utilizza mediante metodi di ragionamento generali.
base di dati deduttiva, cioè
un sistema di assiomi che fungono da premesse per operazioni
inferenziali
© G. Sartor
74
Informatica Giuridica
Informatica Giuridica
Schema di sistema basato sulla
conoscenza
Sistemi basati sulla conoscenza
Base di
conoscenza
Sistemi informatici che operano utilizzando un
insieme di conoscenze dichiarative (base di
conoscenza). Essi comprendono
–
–
–
il motore inferenziale (il deduttore automatico);
le interfacce verso l’utente e verso l’ingegnere della
conoscenza (chi crea e aggiorna la base di
conoscenza).
la base di conoscenza (la base assiomatica)
Motore
Inferenziale
Interfaccia
per la consultazione
Ingegnere della
conoscenza
Utente
75
© G. Sartor
75
Interfaccia
per l'aggiornamento
76
© G. Sartor
76
13