Diferans ki genyen ant lang konpile ak entèprete

Yon kesyon komen ke yo mande pa moun panse pou trape nan pwogram lan se "ki lang mwen ta dwe aprann?"

Repons kesyon sa a prèske enposib pou reponn. Si w ap chèche pou aprann pwogram pou karyè yo, li se yon bon ide pou w wè ki tout lòt moun ap itilize ak aprann sa.

Pou egzanp, nan dènye ane yo yon gwo kantite moun ki ap itilize swa .NET chemine a ki enplike ASP.NET, C #, JavaScript / JQuery / AngularJS. Lang pwogram sa yo tout pati nan zouti Windows la epi tou .NET ki te fèt disponib nan Linux li pa lajman itilize.

Nan mond lan Linux, moun sèvi ak Java, PHP, Python, Ruby Sou ray ak C.

Ki sa ki se yon lang konpile?

# enkli int prensipal () {printf ("Hello World"); }}

Pi wo pase a se yon egzanp trè senp nan yon pwogram ki ekri nan lang nan pwogram C.

C se yon egzanp yon lang konpile. Yo nan lòd yo kouri kòd la pi wo a, nou bezwen kouri li nan yon duèl C.

Anjeneral, fè sa, kouri lòd sa a nan Linux:

gcc helloworld.c -o alo

Demann ki anwo a vire kòd la nan fòma imen-lizib nan kòd machin ki òdinatè a ka kouri natif.

"gcc" se tèt li yon pwogram konpile (gnu c konpilateur).

Yon pwogram konpile ka kouri tou senpleman pa kouri non an nan pwogram lan jan sa a:

./hello

Benefis yo nan lè l sèvi avèk yon konpilateur konpile kòd se ke li jeneralman kouri pi vit pase entèprete kòd jan li pa bezwen travay li soti sou vole a kòm aplikasyon an ap kouri.

Te pwogram nan konpile tou te tcheke pou erè tou li se ke yo te konpile. Si gen nenpòt kòmandman ke du a pa renmen Lè sa a, yo pral rapòte. Sa a ap pèmèt ou ranje tout erè kod anvan ou jwenn yon pwogram konplètman kouri.

Jis paske yon pwogram te konpile avèk siksè pa vle di ke li pral lojikman kouri nan fason ou espere li konsa ou toujou bezwen teste aplikasyon ou an.

Raman se anyen tout tan pafè, sepandan. Si nou gen yon pwogram C konpile sou òdinatè Linux nou an, nou pa ka kopye pwogram konpile sa a nan fenèt òdinatè nou an epi nou atann pou ègzèkutabl la kouri.

Yo nan lòd yo jwenn pwogram nan menm C nan kouri sou òdinatè Windows nou an, nou pral bezwen konpile pwogram nan ankò lè l sèvi avèk yon konpilateur C sou yon òdinatè Windows.

Ki sa ki se yon entèprete lang?

ekri an lèt detache ("hello world")

Kòd ki pi wo a se yon pwogram piton ki pral montre mo "hello world" la lè li kouri.

Kouri kòd la nou pa bezwen konpile li an premye. Olye de sa, nou ka senpleman kouri lòd sa a:

python helloworld.py

Kòd la pi wo a pa bezwen yo dwe konpile premye men li mande pou python enstale sou nenpòt machin ki bezwen kouri script la.

Entèprèt nan python pran kòd imen an lizib ak vire l 'nan yon lòt bagay anvan yo fè li yon bagay machin nan ka li. Tout bagay sa yo rive dèyè sèn yo epi kòm yon itilizatè, tout sa ou pral wè yo se mo yo "hello mond".

An jeneral, li konsidere ke kòd entèprete pral kouri pi dousman pase kòd konpile paske li gen aktivman fè etap la nan vire kòd la nan yon bagay machin nan ka okipe sou vole a kòm opoze a konpile kòd ki ka jis kouri.

Pandan ke sa a ta ka sanble tankou yon inconvénient gen yon nimewo nan rezon ki fè entèprete lang yo itil.

Pou yon sèl li se pi fasil jwenn yon pwogram ki ekri nan piton kouri sou Linux, Windows, ak macos . Tout sa ou bezwen fè se asire w ke python enstale sou òdinatè a ou ta vle kouri script la.

Yon lòt benefis se ke kòd la toujou disponib pou lekti epi li ka fasil chanje nan travay fason ou vle li a. Avèk kòd konpile, ou bezwen jwenn ki kote kòd la kenbe, chanje li, konpile li epi li revize pwogram nan.

Avèk kòd entèprete, ou louvri pwogram nan, chanje li epi li se pare yo ale.

Se konsa, ki ou ta dwe itilize?

Nou gen dout ke desizyon ou nan lang pwogramasyon yo pral deside sou si li se yon lang konpile oswa ou pa.

Lis sa a ka vo kap nan jan li bay lis 9 lang ki pi popilè pwogram lan.

Tou kèk lang yo byen klè mouri tankou COBOL, Visual Basic, ak ActionScript, gen lòt moun ki te sou kwen nan mouri ak te fè yon reaparisyon dramatik tankou JavaScript.

Anjeneral, konsèy nou ta dwe ke si w ap itilize Linux ou ta dwe swa aprann Java, Python oswa C ak si w ap itilize Windows aprann. NET ak AngularJS.