Categoria: Linguaggi di Programmazione

Some prolog exercises

  • Everybody who has a child is happy.
    • We need the predicates happy/1, parent/2, child/1.
      • happy(X) :- parent(X, Y), child(Y).
  • For all X, if X has a child who has a sister then X has two children.
    • We need the predicates child/1, sisterOf/2 (symmetric predicate), hastwochildren/1.
      • hastwochildren(X) :- parent(X,Y), sisterOf(Y,Z).
    • As an alternative:
      • hastwochildren(X) :- parent(X,Y), parent(X,Z), female(Z).
  • Define the relation grandchild using the parent relation. 
    • We need the predicates grandchild/2, parent/2.
      • grandchild(X,Y) :- parent(Z,X), parent(Y,Z).
  • Define the relation aunt(X, Y)
    • We need the predicates: aunt/2, parent/2, sisterOf/2.
      • aunt(X,Y) :- parent(Z,Y), sisterOf(X,Z).
  • Define the  predecessor relation
    • We need the predicates: predecessor/2, parent/2:
      • predecessor(X,Y) :- parent(X,Y).
        predecessor(X,Y) :- parent(Z,Y), predecessor(X,Y).
    • As an alternative:
    • predecessor(X,Y) :- parent(X,Y).
      predecessor(X,Y) :- parent(X,Z), predecessor(Z,Y).

Some remarks:

The predecessor relation is defined by two clauses. This set of clauses is called procedure.

Linguaggio di programmazione Java

Risultato immagini per java

Java è un linguaggio di programmazione ad alto livello, nato più di 20 anni fa.  Attraverso esso si superano i limiti del linguaggio imperativo C diffusissimo a quei tempi, introducendo il motto : “Everything is an object “, ossia: tutto è un oggetto. Pertanto, nasce la programmazione ad oggetti e ci si inizia a spingere verso l’universo multi-paradigma, con diversi stili di programmazione. Infatti Java si evolve verso la programmazione funzionale e concorrente.

Tale linguaggio è riuscito ad astrarre dalla macchina e a spingersi verso una programmazione più astratta e compatibile in ogni dispositivo.

Uno degli scopi principali è quello di creare software compatibili su ogni computer, smartphone, iPhone,… in modo tale da non riscrivere codice per le diverse piattaforme.

Pertanto Java fa utilizzo di una macchina virtuale di esecuzione.  Viene compilato il codice sorgente nel linguaggio della macchina virtuale che può essere installata su i vari dispositivi. Dunque, lo stesso codice sorgente sarà eseguito sia su Windows, Mac, Linux,…, comportando un gran risparmio di tempo.