Storia della programmazione

Concetti di Informatica

Pritesh Patel

Computer Scientist & Data Scientist for over 20 years

Introduzione ai linguaggi di programmazione

Animazione che mostra un ciclo for compilato in binario

  • Scopo: Dare istruzioni a un computer.
  • Panoramica
    • Linguaggi di alto livello: Facili da leggere e scrivere.
    • Linguaggi di basso livello: Vicini al codice macchina, meno leggibili ma più controllabili nei dettagli.
  • Alto livello

    • Logo del linguaggio di programmazione Java
  • Basso livello

    • Logo del linguaggio C
    • Logo del linguaggio Forth
Concetti di Informatica

Programmazione funzionale, procedurale e di basso livello

  • Programmazione funzionale
    • Funzioni matematiche (funzioni pure - es: riordinare la scrivania)
    • Immutabilità (niente effetti collaterali - es: nessuna modifica all’archivio)
  • Programmazione procedurale
    • Sequenza di comandi (istruzioni passo-passo - es: riordina la scrivania, sposta il file nell’archivio)
    • Dati mutabili (effetti collaterali - es: nuovi file in archivio o firma un documento)
  • Programmazione di basso livello
    • Accesso alle parti interne (manipolazione hardware - es: cambia il termostato dell’ufficio)
    • Mutabilità (effetti collaterali - es: termostato, spaziatura nell’archivio)
  • Esempi
    • Funzionale: (Lisp, Scheme)
    • Procedurale: (Python, Java)
    • Basso livello: (C, Assembly)
Concetti di Informatica

L’evoluzione dei linguaggi di programmazione

Animazione che mostra le fasi della programmazione nel tempo

Esempi:

  • LLM (Large Language Models):GPT-4, Claude-3, Google Gemini
  • Linguaggi di alto livello:Python, Java, Cobol, Javascript
  • Linguaggi assembly:x86, ARM
  • Linguaggio macchina:binary
  • Hardware: Non si programma: è l’hardware che esegue il lavoro
Concetti di Informatica

Consulta i paradigmi di programmazione

Screenshot che mostra un corso correlato per approfondire la programmazione

Concetti di Informatica

Passiamo alla pratica !

Concetti di Informatica

Preparing Video For Download...