Programovanie

CoreRT spoločnosti Microsoft premieňa C # na multiplatformový C ++

Spoločnosť Microsoft pomaly mení reťazec nástrojov .Net, aby umožnila predbežnú kompiláciu pre aplikácie na platformách, kde nie je k dispozícii reťazec nástrojov .Net.

Projekt CoreRT s otvoreným zdrojom končí používaním štandardného príkazového riadku Runtime (CLR) .Net na spúšťanie aplikácií. Namiesto toho generuje kód C ++ z kódu danej aplikácie .Net C #, ktorý je potom možné kompilovať a prepojiť na ľubovoľnej cieľovej platforme, ktorá podporuje C ++.

V príspevku na vývojovom blogu spoločnosti AlphaGeek spoločnosti Microsoft spoločnosť Microsoft v krátkosti predstavila svoje plány týkajúce sa fungovania CoreRT spolu s dôvodmi jeho vytvorenia.

„Ak naozaj chcem napísať nejaký C # kód a nechať ho„ len pracovať “na novom zariadení IoT,“ napísal Microsoft, „nemám žiadne možnosti, kým RyuJIT nebude schopný generovať strojový kód, ktorý pracuje s týmto procesorom a operačný systém." Vďaka krížovej kompilácii C # na C ++ môžu vývojári .Net potom dodávať svoje aplikácie bez toho, aby museli čakať na nasadenie .Net na danej platforme, tvrdí Microsoft.

Spoločnosť Microsoft poznamenala, že v priebehu roka uskutočnila nejaký významný proces smerujúci k dosiahnutiu tohto cieľa, i keď uznala, že táto úloha sa ľahšie hovorí ako robí. Najvýznamnejší problém je spoločný pre projekty, ktoré zahŕňajú prekladanie jedného jazyka do druhého. C ++ a .Net nemajú vzájomnú korešpondenciu medzi svojimi vlastnosťami - syntaxou, dátovými štruktúrami, jazykovou logikou atď. Preto musí CoreRT elegantne mapovať určité funkcie .Net do C ++.

Ďalším veľkým projektom, ktorý transponuje jazyk do C ++, aby sa urýchlilo jeho vykonávanie, je Nuitka, ktorá prevádza programy Pythonu do C ++. Nuitka je pokračujúci projekt, ktorý čelí mnohým rovnakým problémom ako CoreRT a má možno ešte ťažší čas na ich zosúladenie. Vďaka dynamickej povahe Pythonu je ťažké konvertovať na vopred zostavený jazyk, pretože každá konštrukcia v jazyku je potenciálne objektom s veľmi premenlivými vlastnosťami. C # je z tohto hľadiska menej problematický, pretože používa statické písanie pre premenné, ale ako už bolo uvedené vyššie, stále prináša množstvo problémov.

Existuje veľa informácií o CoreRT, ktoré pochádzajú priamo z prebiehajúceho preorientovania spoločnosti Microsoft okolo otvoreného zdroja a populárnych technológií iných ako Microsoft. Spoločnosť Microsoft však vždy bola pragmatická, prečo to robí, a pragmatizmus spočíva v tom, že vidí, ako môžu aplikácie .Net bežať na platformách a v ekosystémoch, ktoré ich predtým nepodporovali.

CoreRT môže teoreticky rozšíriť dosah ekosystému .Net bez toho, aby Microsoft musel vyvíjať zbytočné úsilie. Je jednoduchšie napísať jednorazový transpilačný systém z jazyka C # do C ++, ako je to pri vytváraní runtime pre ľubovoľný počet ďalších cieľových platforiem. Iste, tretie strany môžu vytvárať také runtime vďaka .Net, ktorý je v súčasnosti záujmom otvoreného zdroja. Microsoft však plánuje nájsť jeden spôsob, ako im - a sebe samým - pomôcť.

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