Perché il linguaggio C viene insegnato come base dei linguaggi di programmazione del computer? [duplicare]

2

Mi sono spesso chiesto perché il linguaggio C sia insegnato come base per programmare i linguaggi ovunque. Ci sono molti linguaggi moderni come Java, Python ecc. Che facilitano la sintassi e la programmazione. Perché stiamo ancora tenendo in primo piano il linguaggio C come base dei linguaggi di programmazione?

    
posta CodeIt 28.12.2014 - 08:42
fonte

4 risposte

11

Non è insegnato come base dei linguaggi di programmazione. Viene insegnato come base su come funziona la macchina.

Un linguaggio di programmazione visualizza alcune parti del programmatore. Alcuni astrazione . Nei linguaggi funzionali è funzioni . Nei linguaggi logici è logic . Nei linguaggi OOP è objects . In C è la macchina .

C, mentre nasconde i dettagli di implementazione dell'hardware su cui viene eseguito (nomi dei registri, gestione della memoria, ecc.), dà all'utente l'impressione che ha a che fare con una macchina. Un computer. Questo dà agli studenti un migliore apprezzamento di come funziona il computer. Alcune università non vedono "come funziona il computer" una conoscenza necessaria (non lo è), quindi non insegnano a C.

    
risposta data 28.12.2014 - 09:23
fonte
7

Fondamentalmente C è ogni linguaggio di programmazione meno i fronzoli.

Per qualcuno che non conosce il mondo dei concetti di programmazione come Polymorphism, Event Driven programming, Object Oriented Programming non ha alcun senso.

Ricorda che per lungo tempo l'informatica esisteva all'interno della matematica fino a quando la tecnologia hardware non è stata portata nel mondo. Quindi ora hai bisogno di un modo in cui le persone possano istruire il computer per raggiungere un determinato obiettivo. Molti corsi introduttivi iniziano insegnando come implementare un semplice algoritmo (come una Sequenza di Fibonacci o Factorial o qualsiasi altra cosa) come un programma per computer. Si inizia con cose come cicli, condizioni, funzioni, argomenti ecc. Invece di interfacce, classi, singleton ecc.

Cose come la programmazione orientata agli oggetti, le chiusure ecc. sono un modo per gestire il codice e progettare l'applicazione software. Sono i loop, le condizioni e l'aritmetica che in realtà fanno il vero lavoro! C è davvero bravo nell'insegnare queste cose aiutato dal fatto che esiste un numero limitato e limitato di parole chiave .

Less Language Apprendimento , altro linguaggio Utilizzo .

Quando impari C impari automaticamente altre lingue.

C è stato l'ispirazione per molti molti linguaggi di programmazione che hanno una sintassi simile. Personalmente sono venuto da C a JavaScript e mi sono sentito come a casa. Secondo Wikipedia

C influenced AMPL, AWK, csh, C++, C--, C#, Objective-C, BitC, D, Go, Rust, Java, JavaScript, Limbo, LPC, Perl, PHP, Pike, Processing, Python, Seed7, Verilog (HDL)!

Quando si prova Java / PHP / JavaScript / C ++ dopo C, imparano solo alcuni nuovi concetti come OOPS, Closures (o dimenticano alcuni come la tipizzazione statica) e don puoi imparare i cicli , i condizionali ecc.

C è ancora oggi in uso sfrenato.

C è utilizzato per Programmazione di sistema , sviluppo di sistemi operativi , sviluppo di server , database , persino Browser e Macchine virtuali .

C è blazzzingly veloce!

La maggior parte del performant I server sono scritti in C. Statistica, Matematica e altri ambienti di calcolo intensivo sono scritti in C. La libreria GNU Multi-Precision, la GNU Scientific Library, la Mathematica, il linguaggio R e MATLAB sono scritti completamente o parzialmente in C

C è stato utilizzato per realizzare (non solo influenzare) più lingue.

Puoi trovare parser per quasi tutte le lingue in C. Le implementazioni primarie di Python (CPython), Perl 5, R e PHP sono tutte scritte in C!

C è quasi esclusivo per la scrittura dei driver di dispositivo.

Che si tratti di Linux, Windows o Mac, c'è una grande richiesta di ingegneri C in aziende di hardware e società di software che fanno sistemi operativi per lo sviluppo di driver di dispositivo.

C è quasi esclusivo per scrivere codice in ambienti embedded.

Tutti i tuoi Micro Controllers, System on a Chip e altri hardware Embedded sono scritti sia in Assembly che in C. Questo è un motivo per cui molte major di Elettronica vengono anche insegnate C .

Il prossimo grande linguaggio sarà di nuovo basato su C.

Non sembra troppo irragionevole. C è apparso nel 1972. Il C ++ è apparso 11 anni dopo. JavaScript è apparso 23 anni dopo e C # è sorto 28 anni dopo! Tutti loro strongmente legati a C. C hanno resistito alla prova del tempo e ci sono ancora molti altri linguaggi simili a quelli a venire.

C ti insegnerà teoria e applicazione.

Soprattutto, la responsabilità di un programma accademico non è solo quella di insegnarti le competenze di cui l'industria ha bisogno, o avresti bisogno di un lavoro, ma anche di dotarti di un numero sufficiente di capacità teoriche e analitiche in modo da poter rimanere sempre in contatto con le modifiche del futuro.

    
risposta data 28.12.2014 - 17:56
fonte
4

Non direi che c sia insegnata come "la base dei linguaggi di programmazione" molto, per essere onesti. La maggior parte dei corsi introduttivi di programmazione sono in Java, con una manciata di linguaggi più esoterici (so di università che insegnano la loro introduzione a corsi di programmazione in ocaml e schema, per esempio). Anche prima del passaggio a Java, C non era una scelta popolare per una prima lingua; il mio corso ha insegnato Pascal, ad esempio, e credo che sia stato ragionevolmente comune.

Ciò che C è popolare sono i corsi di programmazione di basso livello, dove è richiesta l'interazione con l'hardware, e c'è una buona ragione: poche altre lingue sono in grado di gestire bene quel tipo di lavoro, e C è onnipresente nello sviluppo integrato settore.

    
risposta data 28.12.2014 - 09:28
fonte
0

C viene spesso insegnato come prima lingua e spesso insieme ad altri corsi di informatica. Rende più facile la comprensione dei compsci e inoltre sono più vicini all'hardware, quindi Java e altri linguaggi.

    
risposta data 28.12.2014 - 11:40
fonte

Leggi altre domande sui tag