Programmazione informatica: dal linguaggio macchina all'intelligenza artificiale

Autore: Robert Simon
Data Della Creazione: 23 Giugno 2021
Data Di Aggiornamento: 12 Maggio 2024
Anonim
Programmazione informatica: dal linguaggio macchina all'intelligenza artificiale - Tecnologia
Programmazione informatica: dal linguaggio macchina all'intelligenza artificiale - Tecnologia

Contenuto


Fonte: carloscastilla / iStockphoto

Porta via:

Con l'aumentare della potenza di calcolo, i linguaggi di programmazione si sono evoluti per sfruttare le risorse di elaborazione avanzate.

I linguaggi di programmazione venivano usati anche prima dell'invenzione dei computer. Ad esempio, un piano player scroll, quel lungo rotolo di nastro di carta codificato, è considerato una prima forma di programmazione perché conteneva le istruzioni necessarie per far suonare un piano una melodia.

I primi computer sono stati programmati premendo gli interruttori e cambiando la configurazione dell'hardware. Di conseguenza, i primi programmatori dovevano avere un'intima familiarità con l'hardware del computer. Ma abbiamo fatto molta strada e i linguaggi di programmazione di alto livello richiedono una conoscenza scarsa o nulla dell'hardware sottostante.

Diamo un'occhiata a come siamo arrivati ​​a questo punto coprendo le cinque generazioni di linguaggi di programmazione informatica. (Ottieni alcune informazioni su alcune delle figure chiave nel campo in The Pioneers of Computer Programming.)


La prima generazione - Programmazione a livello di macchina

I linguaggi di programmazione di prima generazione (1GL) sono spesso noti come linguaggi macchina o codice macchina. Operano al livello più basso di astrazione (più vicino all'hardware) di tutte le lingue. I linguaggi di prima generazione gestiscono direttamente gli zeri binari e quelli utilizzati per archiviare ed elaborare le informazioni in un computer. I programmi in lingue di livello superiore devono essere compilati o assemblati nel codice macchina per poter essere eseguiti.

I linguaggi di prima generazione sono stati utilizzati per programmare computer di prima generazione come UNIVAC I e IBM 701. (Per ulteriori informazioni sulla programmazione iniziale, consultare The Women of ENIAC: Programming Pioneers.)

La seconda generazione - Alcuni assemblaggi richiesti

I linguaggi di seconda generazione (2GL), spesso noti come linguaggi assembly, sono stati sviluppati in gran parte a causa della difficoltà di programmazione con linguaggi di prima generazione. Sebbene linguaggi ancora di basso livello, i linguaggi assembly hanno introdotto l'uso di codici simbolici (chiamati mnemonici) per rappresentare le istruzioni al computer. Un programma in linguaggio assembly viene tradotto in codice macchina mediante un'utilità nota come assemblatore.


Poiché operano al livello più basso di astrazione, le lingue di seconda generazione offrono i vantaggi della velocità e della dimensione minima del codice. Consentono inoltre a un programmatore di manipolare direttamente componenti hardware come posizioni di memoria e registri. Un tempo, venivano utilizzati linguaggi di assemblaggio per programmare sistemi operativi e applicazioni che richiedevano codici più piccoli e più veloci, come i videogiochi. Esempi di giochi scritti in linguaggio assembly includono giochi console per la piattaforma Sega Mega Drive / Genesis e la piattaforma Super Nintendo Entertainment System.

Sebbene ampiamente soppiantato da linguaggi di livello superiore, i linguaggi di assemblaggio sono ancora utilizzati in situazioni in cui è richiesta l'interazione hardware o le prestazioni devono essere ottimizzate. Alcuni compilatori per linguaggi di livello superiore compilano il codice sorgente in un linguaggio assembly prima di invocare un assemblatore per compilare il codice macchina.

Nessun bug, nessuno stress: la tua guida passo passo alla creazione di software che ti cambia la vita senza distruggere la tua vita

Non puoi migliorare le tue capacità di programmazione quando a nessuno importa della qualità del software.

La terza generazione - Gentleman’s C e a

La terza generazione di linguaggi di programmazione (3GL) include linguaggi di alto livello come C, C ++, Fortran, COBOL, BASIC, C # e Java. I linguaggi di programmazione di terza generazione rappresentano un notevole miglioramento dell'usabilità rispetto ai linguaggi di assemblaggio.

A differenza dei linguaggi di assemblaggio, i linguaggi di terza generazione non sono specifici della macchina. Durante la programmazione con un linguaggio di terza generazione, un programmatore scrive il codice sorgente per il programma e quindi utilizza un compilatore per tradurlo in codice oggetto (o codice macchina), che può essere compreso dal computer di destinazione.

Lo sviluppo di paradigmi di programmazione come la programmazione strutturata e la programmazione orientata agli oggetti (OOP) ha coinciso con lo sviluppo di linguaggi di terza generazione.

La quarta generazione - Miglioramento del programmatore

I linguaggi di programmazione di quarta generazione (4GL) sono stati creati per migliorare la produttività del programmatore in domini specifici come query di database e generazione di report.

La sintassi di un linguaggio di quarta generazione è generalmente più vicina al linguaggio umano rispetto alla sintassi delle generazioni precedenti di linguaggi di programmazione. Una singola istruzione in una lingua di quarta generazione può generare automaticamente l'equivalente di una serie di istruzioni in una lingua di terza generazione, riducendo il tempo necessario per sviluppare un'applicazione.

Esempi di linguaggi di quarta generazione includono Structured Query Language (SQL), Informix-4GL e ColdFusion.

La quinta generazione - Watson, presumo

I linguaggi di quinta generazione (5GL) sono spesso usati nel regno dell'intelligenza artificiale.

L'unità di calcolo tradizionale è l'algoritmo, che è sostanzialmente una procedura passo-passo per il calcolo di una soluzione. I linguaggi di quinta generazione tentano di andare oltre l'algoritmo definendo le condizioni (o le proprietà) per una soluzione e consentendo al computer di determinare le possibili soluzioni che soddisfano le condizioni specificate.

Un esempio di un linguaggio di quinta generazione è Prolog, che era uno dei linguaggi usati per programmare Watson di IBM in preparazione alla sua partecipazione al programma televisivo "Jeopardy!"

Perchè dovrebbe interessarmi?

Ecco qua, le generazioni di linguaggi di programmazione non sono così difficili da capire. Un buon modello mentale è quanto più in alto si ottiene, tanto più si è sottratti dall'hardware. Ciò significa meno controllo, ma anche meno lavoro per realizzare qualcosa attraverso la programmazione.

Perché è importante? Sebbene teorica, è la chiave per capire dove si adatta il tuo sviluppo. Molti sviluppatori trascorrono la maggior parte della loro giornata in un ambiente di sviluppo integrato per un linguaggio 3GL, quindi capire che un linguaggio è 2GL o 4GL ti dà una prospettiva sul livello di dettaglio richiesto per produrre codice utilizzabile. In generale, lavorare con un linguaggio 2GL sarà più complesso di un linguaggio 3GL. D'altra parte, puoi ottenere molto meno con un linguaggio 4GL come SQL che con un 3GL come C.

Dove da qui?

Ci saranno ulteriori generazioni di linguaggi di programmazione? Alcuni professionisti del computer considerano gli ambienti di sviluppo grafico come una generazione separata del linguaggio di programmazione. Con l'avvento delle app, è sempre più semplice sviluppare nuovi software. Alcune persone indicano anche concetti come "costruisci la tua app" come prova del fatto che anche gli utenti regolari saranno sviluppatori in determinate aree. In ogni caso, è probabile che le generazioni future di programmatori dispongano di nuove generazioni di linguaggi di programmazione per assisterli.