• Istituto
    • Chi Siamo
    • La nostra storia
  • Magazine
    • Agenda
    • Atlante
    • Il Faro
    • Il Chiasmo
    • Diritto
    • Il Tascabile
    • Le Parole Valgono
    • Lingua italiana
    • WebTv
  • Catalogo
    • Le Opere
    • Bottega Treccani
    • Gli Ebook
    • Le Nostre Sedi
  • Scuola e Formazione
    • Portale Treccani Scuola
    • Formazione Digitale
    • Formazione Master
    • Scuola del Tascabile
  • Libri
    • Vai al portale
  • Arte
    • Vai al portale
  • Treccani Cultura
    • Chi Siamo
    • Come Aderire
    • Progetti
    • Iniziative Cultura
    • Eventi Sala Igea
  • ACQUISTA SU EMPORIUM
    • Arte
    • Cartoleria
    • Design & Alto Artigianato
    • Editoria
    • Idee
    • Marchi e Selezioni
  • Accedi
    • Modifica Profilo
    • Treccani X

Kowalski, notazione di

Enciclopedia della Matematica (2013)
  • Condividi

Kowalski, notazione di


Kowalski, notazione di espressione con cui si indica la formula: algoritmo = logica + controllo. Tale formula esprime sinteticamente la teoria di R. Kowalski sugli algoritmi dei linguaggi di programmazione basati sulla logica. Secondo questa teoria ogni algoritmo si compone di una parte logica, che consiste nella specifica della struttura del problema e nei mezzi necessari per risolverlo, e di una parte di controllo, che indica i passi da compiere nel calcolo e quindi la strategia di risoluzione del problema stesso. La parte logica descrive l’obiettivo dell’algoritmo, mentre la parte di controllo ne determina l’efficienza; per questo motivo è possibile migliorare la funzionalità di un algoritmo modificandone la parte di controllo e lasciando inalterata la parte logica. Secondo Kowalski è auspicabile che, nella scrittura di un programma, la parte logica e la parte di controllo siano chiaramente distinte allo scopo di aumentarne la semplicità e di ottimizzarne l’implementazione. La componente logica di un programma è costituita dai dati e dalle relazioni logiche che intercorrono tra i dati stessi; la componente di controllo, invece, comprende le strutture di memoria in cui i dati vengono immagazzinati e resi accessibili all’occorrenza.

Per illustrare la distinzione fra componente logica e componente di controllo, Kowalski riporta l’esempio dell’algoritmo per il calcolo del fattoriale di un numero naturale n, indicato con il simbolo n!. In questo caso la componente logica consiste nella definizione di fattoriale assegnata attraverso le due regole seguenti:

• il fattoriale di 0 è 1: in simboli 0! = 1;

• il fattoriale di n + 1 è uguale al fattoriale di n moltiplicato per n + 1; in simboli (n + 1)! = n! ⋅ (n + 1).

Tale definizione può essere usata per calcolare il fattoriale di un numero con due metodi diversi, con il metodo top-down o con il metodo bottom-up. La scelta del metodo con cui utilizzare la definizione costituisce la componente di controllo dell’algoritmo. Il metodo top-down («dall’alto verso il basso») consiste nel ridurre la complessità del calcolo di (n + 1)! al calcolo di n!. Per esempio per calcolare 5! ci si riconduce al calcolo di 4! e lo si moltiplica per 5, allo stesso modo per calcolare 4! si passa al calcolo di 3! e poi si moltiplica per 4 e così via fino ad arrivare a 0!. In formule si ha:

formula

Al contrario, nel metodo bottom-up («dal basso verso l’alto») il calcolo parte dagli elementi più semplici per arrivare via via a ottenere gli elementi più complessi. Per esempio per calcolare 5! si parte da 0! = 1 e si prosegue con 1! = 1, 2! = 2 … fino ad arrivare a 5! = 120. La stessa definizione di fattoriale può quindi essere usata in due modi differenti e ciascuno dei due dà origine a un differente algoritmo e quindi a una differente struttura di controllo: la procedura top-down dà origine a un algoritmo di tipo ricorsivo (→ calcolo ricorsivo); la procedura bottom-up a un algoritmo iterativo.

La distinzione fra logica e controllo è alla base dei linguaggi di programmazione logica (come per esempio il prolog) la cui caratteristica principale è quella di richiedere, nella risoluzione di un problema, la specifica di ciò che deve essere calcolato e non il modo in cui tale calcolo deve essere eseguito; nei linguaggi logici, infatti, il compito del programmatore si limita alla descrizione della parte logica mentre il controllo della computazione è affidato all’elaboratore.

Tag
  • LINGUAGGI DI PROGRAMMAZIONE
  • STRUTTURA DI CONTROLLO
  • PROGRAMMAZIONE LOGICA
  • METODO TOP-DOWN
  • NUMERO NATURALE
Vocabolario
notazióne
notazione notazióne s. f. [dal lat. notatio -onis, der. di notare «notare2»]. – 1. a. L’atto, il fatto e il modo di notare, cioè di segnare o contrassegnare: la n. delle pagine di un libro, fatta con l’apposizione di numeri progressivi...
òcchio di civétta
occhio di civetta òcchio di civétta locuz. usata come s. m. – Altro nome della pianta primavera (Primula vulgaris).
  • Istituto
    • Chi Siamo
    • La nostra storia
  • Magazine
    • Agenda
    • Atlante
    • Il Faro
    • Il Chiasmo
    • Diritto
    • Il Tascabile
    • Le Parole Valgono
    • Lingua italiana
    • WebTv
  • Catalogo
    • Le Opere
    • Bottega Treccani
    • Gli Ebook
    • Le Nostre Sedi
  • Scuola e Formazione
    • Portale Treccani Scuola
    • Formazione Digitale
    • Formazione Master
    • Scuola del Tascabile
  • Libri
    • Vai al portale
  • Arte
    • Vai al portale
  • Treccani Cultura
    • Chi Siamo
    • Come Aderire
    • Progetti
    • Iniziative Cultura
    • Eventi Sala Igea
  • ACQUISTA SU EMPORIUM
    • Arte
    • Cartoleria
    • Design & Alto Artigianato
    • Editoria
    • Idee
    • Marchi e Selezioni
  • Accedi
    • Modifica Profilo
    • Treccani X
  • Ricerca
    • Enciclopedia
    • Vocabolario
    • Sinonimi
    • Biografico
    • Indice Alfabetico

Istituto della Enciclopedia Italiana fondata da Giovanni Treccani S.p.A. © Tutti i diritti riservati

Partita Iva 00892411000

  • facebook
  • twitter
  • youtube
  • instagram
  • Contatti
  • Redazione
  • Termini e Condizioni generali
  • Condizioni di utilizzo dei Servizi
  • Informazioni sui Cookie
  • Trattamento dei dati personali