Кіріспе
Орындалатын кодқа айналатын бағдарламалау тілі. Компиляцияланатын тіл – бағдарламалау тілі, оның іске асырылуы көбінесе компиляторлар (көз кодты машиналық кодқа аударатын аудармашылар) арқылы жүзеге асырылады, интерпретаторлар (көз кодты қадамдық түрде орындайтын, алдын ала орындалу кезінде аударма жасалмайтын) емес. Бұл термин шамалы беймаз. Принцип бойынша, кез келген тілді компилятормен немесе интерпретатормен іске асыруға болады. Екі тәсілдің үйлесімі де кең таралған: компилятор көз кодты аралық формаға (көбінесе p-код немесе байт-код деп аталады) аударады, содан кейін оны орындайтын интерпретаторға жібереді.
A compiled language is a programming language whose implementations are typically compilers (translators that generate machine code from source code), and not interpreters (step by step executors of source code, where no pre runtime translation takes place). The term is somewhat vague. In principle, any language can be implemented with a compiler or with an interpreter. A combination of both solutions is also common: a compiler can translate the source code into some intermediate form (often called p code or bytecode), which is then passed to an interpreter which executes it.
Артықшылықтары мен кемшіліктері
Компиляция кезінде түпкі кодқа компиляцияланған бағдарламалар, аударма процесінің қосымша жүктемесіне байланысты, орындалу кезінде аударылатын бағдарламалардан жылдам болады. Бірақ, жаңа технологиялар, мысалы, уақытында компиляция және аударма процесінің жалпы жақсаруы, бұл айырмашылықты азайта бастады. Байт-кодты пайдаланатын аралас шешімдер орташа тиімділікке көмектеседі. Төменгі деңгейдегі бағдарламалау тілдері әдетте компиляцияланады, әсіресе тиімділік платформалық үйлесімділіктен маңыздырақ болғанда. Мұндай тілдерде бағдарламаланған код пен машиналық кодпен орындалатын аппараттық операциялардың арасында тікелей сәйкестіктер болады, бұл бағдарламашыларға орталық процессордың (CPU) және жадтың қолданылуын егжей-тегжейлі бақылауға мүмкіндік береді. Біраз күш жұмсаса, тіпті дәстүрлі түрде интерпретацияланатын тілдер үшін де компиляторларды жазу мүмкін. Мысалы, Common Lisp Java байт-кодына (кейін Java виртуалды машинасымен интерпретацияланады), C кодына (кейін түпкі машиналық кодқа компиляцияланады) немесе тікелей түпкі кодқа компиляциялануы мүмкін. Көптеген компиляциялау мақсаттарын қолдайтын бағдарламалау тілдері әзірлеушілерге орындалу жылдамдығын, платформалық үйлесімділікті немесе қолдануды таңдауға көбірек мүмкіндік береді.