печально быть антисоциальным - Interpretācijas spēks

Mar. 9th, 2004

05:13 pm - Interpretācijas spēks

Previous Entry Add to Memories Tell A Friend Next Entry

Kā vienmēr katram darbam savi ieroči un labam programmētājām aiz jostas būtu jābūt vairākām valodām. Interpretējamās valodās rakstītas programmas, nevienmēr ir lēnākas par kompilētajām.




  1. Pie augstāka abstrakcijas līmeņa ir iespējams izmantot labāku (ātrāku) algoritmu. [1]

  2. Augsta līmeņa valodās ir vieglāk veikt optimizāciju, nomainot algoritmu vai datu struktūru.

  3. Kodā, kur tiek izmantots polimorfisms, tas tiek sakomilēts uz switch statements vai vtables. Savukārt, valodās ar late binding, tas tiek darīts tikai tad, kad patiešām kāda metode ir jāsauc. +[2]

  4. Daudzas valodas ir gan interpretējamas, gan vēlāk kompilējamas uz native kodu.

  5. Ja vajag tiešām labi sakompilēt taviem dzelžiem, tad jāizmanto procesora specifiskās lietas. Piemēram Intel kompilators nevis MSVC vai GCC.

  6. Mūsdienās ir JIT un citāda kešošana/daļēja kompilēšana, kā rezultātā virtuālā mašīna veic arī kompilēšanu un optimizēšanu.

  7. Daudzās valodās ir iespēja kodu gan interpretēt, gan kompilēt pēc vajadzības


[1] Bjarne Stroustrup about Abstraction and Efficiency.

[2] "Late binding need not be any slower than static binding. Indeed, it can sometimes be faster. The reason is that late binding has more semantic meaning that static binding does. To simulate the semantics of late binding in a statically bound language you have to use if or switch statements, or a jump table. " --Robert C Martin

(3 comments | Leave a comment)

Comments:

(no subject) - [info]lupus
[User Picture]
From:[info]smejmoon
Date:March 9th, 2004 - 06:03 pm
(Link)
Tā ir. Intel ir labāks superkrutajiem Intel dzelžiem. Bet ja ātrums ir tik svarīgs, tad arī tie dzelži būs :)
(Reply to this) (Parent) (Thread)
(no subject) - [info]lupus