💻

Introduzione al linguaggio C++

May 14, 2025

Appunti sulla lezione di C++

Introduzione al C++

  • C++ è l'erede del linguaggio C.
  • Importanza e successo del C++ nel panorama dei linguaggi di programmazione.

Caratteristiche del C

  • C è un linguaggio ad alto livello, facile da comprendere.
  • Richiede traduzione in linguaggio macchina (linguaggio binario).
  • Creato da Dennis Ritchie negli anni '70.
  • Obiettivo: rendere i costrutti linguistici facilmente mappabili in codice macchina efficiente.
  • Permette di lavorare a stretto contatto con l'hardware.

Applicazioni del C

  • Linguaggio preferito per sviluppare software di sistema:
    • Sistemi operativi (UNIX, Linux).
    • Driver e software per sistemi embedded (robot, strumentazione industriale).

C++ come linguaggio general-purpose

  • C++ è un linguaggio general-purpose, non specializzato in un singolo campo applicativo.
  • Flessibilità e potenza in vari contesti.
  • Efficiente, ma con una curva di apprendimento più ripida.

Vantaggi e svantaggi del C++

  • Vantaggi:
    • Maggiore efficienza e flessibilità.
    • Adatto per molti campi applicativi.
  • Svantaggi:
    • Maggiore complessità e possibilità di errori difficili da scoprire.
    • Non è l'unico linguaggio disponibile.

Evoluzione del C e C++

  • C non è morto, esiste ancora uno standard (C1) per mantenere compatibilità.
  • C++ è stato progettato per essere più sicuro e rigoroso.
  • Introduzione della programmazione orientata agli oggetti (OOP).

OOP e C++

  • Introduzione di classi e ereditarietà nel C++.
  • Possibilità di definire tipi complessi e personalizzati dagli utenti.
  • Programmazione per differenze: derivazione di nuovi tipi da quelli esistenti.

Innovazioni nel C++

  • Aggiunta di meccanismi senza sacrificare l'efficienza (lightweight abstraction).
  • C++ rimane difficile da padroneggiare, ma offre prestazioni elevate.

Novità nella versione 11 di C++

  • Supporto per architetture parallele:
    • Esecuzione concorrente di codice (multi-threading, multiprocessor).
  • Miglioramenti in sicurezza e solidità (pointers).
  • Nuove funzionalità come:
    • Funzioni lambda.
    • Ciclo for semplificato.
    • Supporto Unicode.

Conclusione

  • La lezione è stata introduttiva, nel prossimo appuntamento si entrerà nel vivo del linguaggio.