se ti è stato chiesto di rispondere alla domanda "qual è la differenza tra la lingua inglese e un linguaggio di programmazione" come risponderai? [chiuso]

5

Fondamentalmente in entrambi i casi hai:

  • un vocabolario ben definito
  • una sintassi da rispettare
  • entrambi possono esprimere una logica aziendale
  • possono definire la semantica

Non penso che sarebbe giusto dire "Un linguaggio di programmazione è utile solo per un PC" o qualcosa del genere.

Non riesco a trovare una risposta reale, ma possiamo sentire la differenza, è strano.

    
posta user827992 30.06.2012 - 01:40
fonte

7 risposte

18

La distinzione essenziale, direi, è sintassi e semantica formalmente definite.

Un linguaggio di programmazione può essere analizzato da uno strumento automatico in base a regole formali, e può avere un significato in base a tali regole, oppure essere non valido e quindi inutile. E se ha un significato, significa esattamente ciò che le regole formali dicono che significa e nient'altro.

Un linguaggio umano, d'altra parte, non è inteso formalmente ma intuitivamente . Puoi mutilare la grammatica ad un livello piuttosto alto e la persona con cui stai parlando comprenderà ancora cosa intendi, e ciò che intendi (e intendi dire) è spesso non precisamente ciò che hai detto .

Come nota a margine, questo tende a rendere estremamente difficile l'analisi del linguaggio naturale. Rimane uno dei grandi problemi irrisolti dell'intelligenza artificiale, nonostante sia uno di quelli su cui hanno lavorato più a lungo!

    
risposta data 30.06.2012 - 01:44
fonte
4

Ecco un grosso problema:

Mason lo ha già detto, ma: le lingue formali hanno formalmente definito la semantica. Le lingue umane no. Non è ancora ben compreso come gli umani estraggono la semantica, nonostante il fatto che questo sia stato studiato per decenni da linguisti, filosofi e psicologi.

Penso che sia abbastanza ovvio che le lingue formali manchino della ricchezza semantica di un linguaggio naturale anche semplice. "Il gatto salta sul cane pigro" codifica e dipende da molte più informazioni sul mondo che solo le definizioni delle parole e la sintassi da sola. Le lingue formali mancano dell'ambiguità sintattica e semantica che è possibile anche con il linguaggio naturale.

    
risposta data 30.06.2012 - 02:00
fonte
4

Quando ero un prof 30 anni fa ci sarebbero stati questi Colloquio della Facoltà o weekend fuori sede, dove alcuni prof di tutta l'università sarebbero stati invitati, con i decani, per il cibo elaborato e le discussioni "collegiali". Leggi: b o r i n g .

Una volta che la domanda è stata sollevata: dovrebbe essere consentita una lingua informatica in sostituzione del requisito della lingua straniera?

Questo mi ha fatto impazzire. Pensare che l'apprendimento di BASIC o PASCAL (al momento) fosse persino sul grafico, rispetto all'apprendimento del francese, del tedesco o di un'altra lingua e cultura umana, sembrava assurdo.

La tecnologia è bella. Ha una profondità di significato che non può davvero essere immaginata al di fuori di esso. Allo stesso tempo, è facile pensarlo come un mezzo per un fine - un modo per progettare i nostri schiavi meccanici.

Cosa c'è in programmazione che può essere paragonato a un poema o un romanzo? Quando impari un linguaggio umano, non è solo un vocabolario, una sintassi, ecc. È una finestra su storia, cultura, bellezza, ciò che rende la vita interessante.

    
risposta data 30.06.2012 - 03:25
fonte
2

Fai una strana domanda e ottieni una strana risposta :) Ecco alcune differenze (INMO)! - Aggiungi alla lista il fatto che la ricorsione è significativa solo per i computer e non per gli umani.

    
risposta data 30.06.2012 - 02:57
fonte
2

"Un linguaggio di programmazione è solo utile per un PC" non è giusto che tu abbia ragione.

Il modo giusto per indicare la differenza sarebbe

Un linguaggio di programmazione è anche utile per un PC

Il punto è che il linguaggio di programmazione (proprio come l'inglese) è principalmente inteso per essere letto / comunicato dagli umani, ma a differenza dell'inglese, ha una limitazione ingombrante che deve consentire l'esecuzione della macchina.

...Writing code certainly feels very similar to writing poetry. When I'm writing poetry, it feels like the center of my thinking is in a particular place, and when I'm writing code the center of my thinking feels in the same kind of place. It's the same kind of concentration. So, I'm thinking up possibilities, I'm thinking about, well, so how do I reinvent the code, gee, you know, what's the simplest way to do this.

I'm thinking about things like simplicity -- how easy is it going to be for someone to look at it later? How well is it fulfilling the overall design that I have in mind? How well does it fit into the architecture? If I were writing a very long poem with many parts, I would be thinking, "Okay, how does this piece fit in with the other pieces? How is it part of the bigger picture?" When coding, I'm doing similar things, and if you look at the source code of extremely talented programmers, there's beauty in it. There's a lot of attention to compression, using the underlying programming language in a way that's easy to penetrate. Yes, writing code and writing poetry are similar...

         (Richard Gabriel, Janice J. Heiss, The Poetry of Programming)

...Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding...

         (Donald E. Knuth, Literate Programming)

    
risposta data 30.06.2012 - 01:49
fonte
1

Quando parli il linguaggio di programmazione stai parlando di dati e istruzioni chiare.

Quando parli inglese hai una grande trattativa sui non-dati che termina con istruzioni ambigue e significati nascosti per i dati che apparentemente sono chiari.

    
risposta data 30.06.2012 - 11:00
fonte
1

Lo scopo di ogni lingua è la comunicazione, per far conoscere i tuoi sentimenti all'altra parte, che si tratti di una persona o di una macchina. La differenza fondamentale tra lingua inglese e linguaggio di programmazione è il modo di comunicare i sentimenti. Nel linguaggio di programmazione lo fai in un modo che fai con un bambino, dando informazioni analizzate mentre l'inglese è molto più complicato di così. Devi rendere i tuoi pensieri comprensibili come per l'ascoltatore, ma qui hai le stesse istruzioni per il sistema. Questo è il punto fondamentale. Venendo ora alla struttura e alla composizione- Usiamo l'inglese nei nostri linguaggi di programmazione, ma non è il contrario. Inoltre, né la struttura né la composizione sono necessarie in inglese, ma se manchi questo nei programmi, il computer renderà la tua vita un inferno finché non lo correggerai secondo le regole predefinite. È per questo che i programmatori stanno cercando di unire l'inglese al linguaggio di programmazione che è nata l'intelligenza artificiale; in modo da unire il divario tra inglese e linguaggi di programmazione, per far capire ai laici che macchina e macchina capiscono il profano.

    
risposta data 30.06.2012 - 10:25
fonte

Leggi altre domande sui tag