Programmēšana

Microsoft CoreRT pārvērš C # par starpplatformu C ++

Microsoft lēnām maina .Net rīku ķēdi, lai ļautu pirms laika apkopot lietojumprogrammas platformās, kur nav .Net rīku ķēdes.

Atvērtā koda CoreRT projekts atceļ lietojumprogrammu palaišanai .Net standarta komandrindas izpildlaiku (CLR). Tā vietā tas ģenerē C ++ kodu no norādītā .Net C # lietotnes koda, kuru pēc tam var apkopot un saistīt jebkurā mērķa platformā, kas atbalsta C ++.

Ziņā Microsoft AlphaGeek izstrādes emuārā Microsoft īsi izklāstīja savus plānus par CoreRT darbību, kā arī pamatojumu tā izveidošanai.

"Ja es patiešām vēlos uzrakstīt kādu C # kodu un likt tam" vienkārši darboties "jaunā IoT ierīcē," rakstīja Microsoft, "man nav iespēju, kamēr RyuJIT nespēj ģenerēt mašīnkodu, kas darbojas ar šo procesoru, un operētājsistēma." Krustojot C # uz C ++, .Net izstrādātāji pēc tam var piegādāt savas lietojumprogrammas, negaidot, kamēr .Net tiks izvietots noteiktā platformā, saka Microsoft.

Microsoft atzīmēja, ka gada laikā ir paveicis nozīmīgu procesu šī mērķa sasniegšanai, kaut arī atzina, ka uzdevums ir vieglāk pateikt nekā izdarīts. Visizcilākā problēma ir kopīga projektiem, kas saistīti ar vienas valodas pārstādīšanu citā. C ++ un .Net nav savstarpējas atbilstības starp to funkcijām - sintaksi, datu struktūrām, valodas loģiku utt. Tāpēc CoreRT ir eleganti jāaplāno dažas .Net funkcijas C ++.

Vēl viens nozīmīgs projekts, kas valodu pārvērš C ++, lai paātrinātu tās izpildi, ir Nuitka, kas pārveido Python programmas par C ++. Nuitka ir notiekošs projekts, kas saskaras ar daudziem tiem pašiem jautājumiem kā CoreRT un, iespējams, ir vēl grūtāk tos saskaņot. Python dinamiskais raksturs apgrūtina pārvēršanu laikus apkopotā valodā, jo katra valodas konstrukcija potenciāli ir objekts ar ļoti mainīgām īpašībām. C # no šī viedokļa ir mazāk problemātisks, jo mainīgajiem tas izmanto statisko rakstīšanu, taču, kā minēts iepriekš, tas joprojām rada daudzas grūtības.

Ir daudz par CoreRT, kas tieši izriet no Microsoft notiekošās pārkārtošanās ap atvērtā pirmkoda un populārām tehnoloģijām, kas nav Microsoft. Bet Microsoft vienmēr ir bijis pragmatisks par to, kāpēc tā rīkojas, un šeit pragmatisms ir par to, kā redzēt .Net lietojumprogrammas var darboties platformās un ekosistēmās, kas iepriekš tās neatbalstīja.

CoreRT teorētiski var paplašināt .Net ekosistēmas sasniedzamību, Microsoft nepieliekot liekas pūles. Vienkāršu transpilācijas sistēmu ir vieglāk rakstīt no C # uz C ++, nekā izveidot izpildlaiku jebkuram skaitam citu mērķa platformu. Protams, trešās puses var izveidot šādus izpildlaikus, pateicoties .Net, kas tagad ir atvērtā pirmkoda problēma. Bet Microsoft plāns ir atrast vienu veidu, kā glābt viņus - un pašas - nepatikšanas.

$config[zx-auto] not found$config[zx-overlay] not found