печально быть антисоциальным - Post a comment

Mar. 9th, 2004

[info]smejmoon

05:13 pm - Interpretācijas spēks

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

Read Comments

Reply:

From:
( )Anonymous- this user has disabled anonymous posting.
Username:
Password:
Subject:
No HTML allowed in subject
  
Message:

Notice! This user has turned on the option that logs your IP address when posting.