Qual è la definizione precisa del paradigma di programmazione?

6

Wikipedia definisce il paradigma di programmazione così:

a fundamental style of computer programming

che riecheggia nel testo descrittivo delle tag su questo sito.

Trovo che questa sia una definizione deludente. Chiunque conosca le parole programming e paradigm potrebbe fare al riguardo senza sapere altro. Esistono molti stili di programmazione per computer a molti livelli di astrazione; all'interno di un dato paradigma di programmazione, sono possibili più stili. Ad esempio, Bob Martin dice in Pulisci codice (13),

Consider this book a description of the Object Mentor School of Clean Code. The techniques and teachings within are the way that we practice our art. We are willing to claim that if you follow these teachings, you will enjoy the benefits that we have enjoyed, and you will learn to write code that is clean and professional. But don't make the mistake of thinking that we are somehow "right" in any absolute sense.

Quindi Bob Martin non sta affermando di avere lo stile corretto della programmazione orientata agli oggetti, anche se lui, se qualcuno, potrebbe avere qualche pretesa per farlo. Ma anche all'interno della sua scuola di programmazione, potremmo avere diversi stili di formattazione del codice (K & R, ecc.). Esistono molti stili di programmazione a molti livelli.

Quindi, come possiamo definire paradigma di programmazione in modo rigoroso, per distinguerlo da altre categorie di stili di programmazione? Fondamentale è in qualche modo utile, ma non specifico. Come possiamo definire la frase in un modo che comunichi più dei significati separati di ciascuna delle due parole - in altre parole, come possiamo definirla in un modo che fornisca un significato aggiuntivo per qualcuno che parla inglese ma non lo è familiarità con una varietà di paradigmi?

    
posta Kazark 27.09.2012 - 17:10
fonte

3 risposte

4

Thomas Kuhn definisce il paradigma in The Structure of Scientific Revolutions come:

Attempting to discover the source of that difference led me to recognize the role in scientific research of what I have since called “paradigms.” These I take to be universally recognized scientific achievements that for a time provide model problems and solutions to a community of practitioners.

Merriam-Webster offre tre definizioni 1 , il terzo è il più rilevante:

  1. example, pattern; especially: an outstandingly clear or typical example or archetype
  2. an example of a conjugation or declension showing a word in all its inflectional forms
  3. a philosophical and theoretical framework of a scientific school or discipline within which theories, laws, and generalizations and the experiments performed in support of them are formulated; broadly: a philosophical or theoretical framework of any kind

Il termine è comunemente usato e ben compreso in ambienti scientifici, non è necessario definirlo ulteriormente. Un paradigma di programmazione è semplicemente un paradigma della disciplina di programmazione, e questo è tutto.

L' articolo di Wikipedia ti collega a offerte più di una spiegazione, forse mirate a persone senza una programmazione o altro background scientifico , di una definizione. È un'enciclopedia dopotutto, non un autorevole riferimento allo sviluppo del software.

1 L'esempio è usato in modo prominente nelle prime due definizioni, perché paradigma (παράδειγμα) è la parola greca per esso.

    
risposta data 27.09.2012 - 17:28
fonte
4

So how can we define programming paradigm rigorously, to distinguish it from other categories of programming styles?

Non lo fai.

Il design del programma è il lato della programmazione che è più artigianale che ingegneristico. La gente non va in giro cercando di definire rigorosamente il cubismo pittorico o l'architettura gotica. Sono termini in cui persone si applicano alle categorie di etichette. Non si sono evoluti da qualche verità naturale. Se un edificio utilizza archi a punta, allora si adatta meglio alla categoria gotica.

Allo stesso modo, se tendo ad usare metodi puri e dati immutabili, il design ha un taglio funzionale. I concetti possono essere mescolati e adattati e si evolvono nel tempo. È raro che i programmi moderni non siano una sfumatura di grigio con tratti di paradigmi diversi.

    
risposta data 28.09.2012 - 04:24
fonte
2

Ottime spiegazioni dei paradigmi di programmazione e dei concetti di programmazione da cui sono costruiti quei paradigmi si trovano nelle opere di Peter van Roy. Soprattutto nel libro Concetti, tecniche e modelli di programmazione per computer di Peter Van Roy e Seif Haridi . ( Ecco la wiki companion. ) CTM (come è colloquialmente conosciuto) usa multi-paradigm linguaggio di programmazione Oz distribuito per introdurre tutti i principali paradigmi di programmazione.

Peter van Roy ha anche realizzato questo fantastico poster che mostra i 34 principali paradigmi e le loro relazioni e posizioni su vari assi . Il poster è fondamentalmente una versione incredibilmente compressa di CTM. Una spiegazione più approfondita di questo poster è contenuta nell'articolo Programmazione dei paradigmi per i manichini: cosa dovrebbe sapere ogni programmatore che è apparso come un capitolo del libro Nuovi paradigmi computazionali per computer music , a cura di G. Assayag e A. Gerzso. Spiega per esempio in modo molto conciso e facilmente comprensibile, che paradigma di programmazione in realtà è , che cos'è un concetto di programmazione e in che modo i due sono correlati.

    
risposta data 28.09.2012 - 02:43
fonte

Leggi altre domande sui tag