Programming Languages

Esattamente come un linguaggio naturale come l'italiano o l'inglese, un linguaggio di programmazione come C o Java permette ad un essere umano di esprimere i propri desideri. A differenza di un linguaggio naturale, un linguaggio di programmazione è tuttavia completamente privo di ambiguità, consentendo ad un computer "stupido" di capire inequivocabilmente la situazione e soddisfare in questo modo i desideri dell'utente.

I programmi per computer sono "grandi": mentre un libro di Harry Potter può essere composto da 8'000 righe di testo, il sistema operativo del vostro computer portatile può consistere di 80'000'000 righe di testo. Se per scrivere un libro di Harry Potter ci sono voluti 12 mesi, scrivere un sistema operativo può occupare la vita di un ingegnere del software per 10'000 anni, oppure 10 anni di quella di 1'000 ingegneri del software. La ricerca nel settore del Programming Languages studia come creare questo genere di linguaggi nel modo migliore, consentendo a chi conosce la lingua (cio` i programmatori) di scrivere l'immensa mole di codice necessario senza introdurvi troppi errori, facendo in modo che il risultato finale (cioè il programma) funzioni in modo efficiente.

What does a Programming Language look like?

Here we see a text written in a natural language, and the corresponding text (a program) written in a programming language. In between we show how to translate between the two. The program focuses on certain key points from the text and leaves out some details.

Natural Language

Auf seinem Heimweg findet Hans vor seinem Haus eine Katze. Weil das Wetter so schlecht ist, nimmt er sie mit ins Haus. Die Katze macht es sich beim Ofen bequem und schläft ein. Als die Mutter von Hans nach Hause kommt und am Ofen vorbeigeht, stösst sie aus Versehen gegen die Katze. Die Katze erschrickt und kratzt die Mutter am Bein.

Translation

  • kratzen(A, B) steht für "A kratzt B"
  • schlafen(A) steht für "A schläft ein"
  • mitnehmen(A ,B) steht für "A nimmt B mit ins Haus"
  • H steht für "Hans"
  • K steht für "Katze"
  • M steht für "Mutter"

Programming Language

mitnehmen(H,K) ; schlafen(K) ; kratzen(K,M)

This particular program is written in a language that would allow a computer to automatically answer certain questions about the situation, such as: Who scratched the mother? Did the cat sleep before scratching the mother? Who brought the cat who scratched the mother?

Programming languages that allow answering such questions are called logic programming languages. There are other kinds of languages, such as imperative languages that allow formulating step-by-step commands to a computer, and functional programming languages where programs are expressed as mathematical functions. Students of informatics learn a variety of such languages, and they even learn how to create their own languages to make solving certain kinds of problems easier.

More Information

Programming Languages Research at USI

Gold sponsors:
Silver sponsor:
Con la collaborazione di: