Vra

Ek hou baie van wat ek gelees het oor D.

  • Verenigde Dokumentasie (Wat sou maak my werk baie makliker.)
  • Toets vermoë gebou in die taal.
  • Debug-kode ondersteuning in die taal.
  • Uit Die Verklarings.(Ek het altyd het gedink dit was dom om te verklaar dat die dieselfde funksie twee keer.)
  • Gebou in funksies te vervang Preprocessor.
  • Modules
  • Typedef gebruik word vir die behoorlike tipe nagaan in plaas van aliasing.
  • Geneste funksies.(Hoes PASCAL Hoes)
  • In en Uit Parameters.(Hoe voor die hand liggend is dat!)
  • Ondersteun lae vlak programmering - Ingebedde stelsels, o ja!

Maar:

  • Kan D ondersteuning van'n geïntegreerde stelsel wat nie van plan om te loop'n OS?
  • Die blatante declearation dat dit ondersteun nie 16 bietjie verwerkers proclude dit geheel en al uit ingesluit aansoeke loop op sulke masjiene?Soms het jy nie nodig het'n hamer om jou probleem op te los.
  • Vullisverwydering is'n groot op Windows of Linux, maar, en ongelukkig is ingebed aansoeke iewers moet doen eksplisiete geheue bestuur.
  • Verskeidenheid perke nagaan, jy love dit, jy haat dit.Groot vir die ontwerp versekering, maar nie altyd permissable vir prestasie kwessies.
  • Wat is die implikasies op'n geïntegreerde stelsel, nie die bestuur van'n OS, vir multithreading ondersteun?Ons het'n kliënt wat nie eens soos onderbreek.Veel minder OS/multithreading.
  • Is daar'n D-Lite vir ingebedde stelsels?

So basies is D geskik vir ingebedde stelsels met slegs'n paar megagrepe (soms minder as'n magabyte), nie die bestuur van'n OS, waar max geheue gebruik moet bekend wees by die stel van tyd (Per vereistes.) en moontlik op iets kleiner as'n 32 bit verwerker?

Ek is baie geïnteresseerd in'n paar van die funksies, maar ek kry die indruk dit is gemik op die lessenaar aansoek ontwikkelaars.

Wat is spesifiek wat maak dit ongeskik vir'n 16-bit implementering?(Die aanvaarding van die 16 bit argitektuur kon adres voldoende hoeveelhede van die geheue te hou die runtimes, óf in die geheue of RAM.) 32 bietjie waardes kan nog steeds bereken word, al is dit stadiger as 16 bietjie en wat meer bedrywighede, met behulp van die biblioteek-kode.

Was dit nuttig?

Oplossing

Ek het om te sê dat die kort antwoord op hierdie vraag is "Nee".

  • As jou masjiene is'n 16 bietjie, sal jy het groot probleme pas D in dit - dit is uitdruklik nie ontwerp vir dit.
  • D is nie'n lig tale in sigself, is dit genereer'n baie van die runtime tipe inligting wat gewoonlik gekoppel is in jou jeug, en wat ook nodig is vir typesafe variadics (en dus is die standaard opmaak funksies word dit Tango of Phobos).Dit beteken dat selfs die kleinste aansoeke is verbasend groot in grootte, en kan dus diskwalifiseer D van die stelsels met'n lae RAM.Ook D met'n runtime as'n gedeelde lib (wat kan verlig sommige van hierdie kwessies), is bietjie getoets.
  • Alle huidige D biblioteke vereis'n C standaard biblioteek onder dit, en so tipies ook'n OS, so selfs dat die werk teen die gebruik van D.Egter, daar bestaan nie eksperimentele pitte in D, so dit is nie onmoontlik nie per se.Daar sou net nie enige biblioteke vir dit, as van vandag.

Ek sou persoonlik graag om te sien jy slaag nie, maar twyfel dat dit sal maklik wees om te werk.

Ander wenke

In die eerste plek lees larsivi se antwoord . Hy het gewerk op die D runtime en weet wat hy praat.

Ek wou net om by te voeg: Sommige van wat jy gevra oor is reeds moontlik. Dit sal jou nie kry al die pad, en 'n mis is so goed soos 'n myl hier maar nog steeds, FYI:

  

vullisverwydering is groot op Windoze of Linux, maar, en ongelukkig ingeboude programme moet iewers expliciete geheuebestuur doen.

Jy kan vullisverwydering afdraai. Die verskillende eksperimentele D bedryfstelsels daar buite doen dit. Sien die std.gc module, in die besonder std.gc.disable. Let ook op dat jy nie nodig het om geheue toeken met new: jy kan malloc en free gebruik. Selfs skikkings kan toegeken word met dit, jy hoef net 'n D verskeidenheid heg om die toegekende geheue met behulp van 'n sny.

  

Array grense nagaan, jy lief is, jy haat dit. Groot vir ontwerp versekering, maar nie vir altyd toelaatbaar vir prestasie kwessies.

Die spesifikasie vir skikkings spesifiek vereis dat opstellers voorsiening te maak vir skrede nagaan om afgeskakel (sien die "Implementering Nota"). gdc bied -fno-bounds-check, en in dmd behulp -release moet dit afskakel.

  

Wat is die implikasies van 'n geïntegreerde stelsel, nie hardloop 'n OS, vir multi-threading ondersteuning? Ons het 'n kliënt wat nie doen selfs soos onderbrekings. Veel minder OS / multi-threading.

Dit Ek is minder duidelik op, maar gegewe dat die meeste C Runtimes toelaat afskakel multi-threading, lyk dit waarskynlik een kon die D runtime om dit so goed te skakel. Of dit is maklik of moontlik nou al het ek julle nie kan vertel.

Die antwoorde op hierdie vraag is verouderd:

  

Kan D 'n geïntegreerde stelsel wat nie van plan om te hardloop 'n bedryfstelsel ondersteun?

D kan kruis-saamgestel vir ARM Linux en vir ARM Cortex-M . Sommige projekte is gemik op die skep van biblioteke vir Cortex-M argitekture soos MiniLibD vir die STM32 of hierdie projek wat 'n generiese biblioteek gebruik vir die STM32 . (Jy kan jou eie minimalistische OS in D op ARM Cortex-M implementeer.)

  

Het die volslae declearation dat dit nie ondersteun 16 bit verwerkers proclude dit heeltemal uit embedded programme wat uitgevoer word op so 'n masjien? Soms jy nie 'n hamer nodig het om jou probleem op te los.

Nee, sien beantwoord bo ... (Maar ek sou nie verwag dat 'n kleiner "argitekture as Cortex-M sal ondersteun word in die nabye toekoms.)

  

vullisverwydering is groot op Windows of Linux, maar, en ongelukkig ingesluit aansoeke moet iewers eksplisiete geheuebestuur doen.

Jy kan skryf Vuil Collection gratis kode . (Die D fondament blyk te streef na 'n "GC gratis voldoen" standaard biblioteek Phobos maar dit is werk aan die gang.)

  

Array grense nagaan, jy lief is, jy haat dit. Groot vir ontwerp versekering, maar nie vir altyd toelaatbaar vir prestasie kwessies.

(As jy sê dit hang af van jou "persoonlike smaak" en ontwerp besluite te neem. Maar ek sou 'n aanvaarbare prestasie oorhoofse aanvaar vir gebonde nagaan as gevolg van die agtergrond van die D samesteller ontwikkelaars en D's ontwerp doelwitte.)

  

Wat is die implikasies van 'n geïntegreerde stelsel, nie hardloop 'n OS, vir multi-threading ondersteuning? Ons het 'n kliënt wat nie doen selfs soos onderbrekings. Veel minder OS / multi-threading.

?

(Wat is die vraag 'n Mens kan BTW implementeer mutlithreading met behulp van D's taal vermoëns bv soos uiteengesit in hierdie vraag .: As jy wil gebruik onderbrekings van mening dat dit "hello world" projek vir 'n Cortex-M3 .)

  

Is daar 'n D-Lite vir ingebedde stelsels?

Die Safed subset van D teikens op die ingeboude domein.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top