Кіріспе

Машинаға тәуелді бағдарламалық қамтамасыз ету – тек нақты бір компьютерде ғана жұмыс істейтін бағдарламалық қамтамасыз ету. Көптеген компьютерлік архитектураларда жұмыс істейтін қолданбалар машинаға тәуелсіз немесе кросс-платформалық деп аталады. Көптеген ұйымдар мұндай бағдарламалық жасақтаманы таңдайды, себебі машинаға тәуелді бағдарламалық жасақтама – артықшылық екеніне және оның көбірек сатып алушыларды тартатынына сенеди. Әртүрлі компьютерлерде қолданбалық бағдарламалық жасақтаманы жұмыс істеуі үшін ұйымдар оны басқа машиналарға бейімдеуі мүмкін. Мұндай архитектураларда машинаға тәуелді қолданбаларды орнату үшін, оларды бейімдеу қажет. Бұл процедураға қолданба кодын нысаналық платформаға сәйкес жазу немесе қайта жазу кіреді.

Көшіру

Порттау – бір архитектурадан екінші архитектураға қосымшаны түрлендіру процесі. Java сияқты бағдарламалау тілдері, бастапқы кодты өзгертпестен қосымшаларды архитектуралар бойынша көшіруге мүмкіндік беру үшін жасалған. Бұл термин, бағдарламалау/жабдықты басқа архитектурада пайдалануға қолайлы ету үшін өзгерту кезінде қолданылады. Белгілі бір жүйеде дұрыс жұмыс істемейтін кодты басқа жүйеге портолдау қажет. Порттауға жұмсалатын күш-жігер бірнеше факторға байланысты, соның ішінде бастапқы ортаның (көз кезеңі) жаңа ортадан (мақсатты кезең) қаншалықты өзгешелігі және жасаушылардың платформаға қатысты бағдарламалау тілдерін білудегі тәжірибесі. Көптеген тілдер, үйлесімсіздіктерді шешу үшін платформаға қатысты интерпретаторлармен өңделетін машинаға тәуелсіз аралық кодты ұсынады. Аралық өрнек аралық тілде жазылған барлық модульдерді орындай алатын виртуалды машинаны көрсетеді. Аралық кодтың нұсқаулары кодты құрастырушымен орындалатын кодты жасау үшін бөлек машиналық код құрылымдарына аударылады. Аралық кодты платформаға қатысты кодқа статикалық түрлендірусіз тікелей орындауға да болады.

Қадамдар

Аудармашыны көшіру. Бұл портативті кодта жазылуы мүмкін. Бастапқы кодты жаңа машинаға бейімдеу. Аудармашыны код генераторының бастапқы кодымен дерек ретінде пайдаланып, түзетілген бастапқы кодты орындау. Бұл код генераторы үшін машиналық кодты шығарады.