Ohjelmointi

Microsoft pyrkii yksinkertaisuuteen Bosque-ohjelmointikielen kanssa

Microsoft on käynnistänyt uuden avoimen lähdekoodin projektin Bosque-ohjelmointikielen kehittämiseksi. Bosque-kielihankkeen tarkoituksena on rakentaa toimiva ohjelmointikieli, joka välttää "tahattoman monimutkaisuuden" kehitysprosessissa.

Bosque-kielen suunnittelutavoitteisiin kuuluvat kehittäjien tuottavuuden parantaminen, parempi ohjelmistojen laatu sekä joukko uusia kääntäjiä ja työkalukokemuksia. Uusi kieli asetetaan kokeiluksi säännöllisessä suunnittelussa koneohjatun, nopean ja luotettavan ohjelmistokehityksen elinkaaren ajan.

Keskeinen tavoite on tahattoman monimutkaisuuden poistaminen. Bosque-koodin oletetaan olevan yksinkertainen ja helposti ymmärrettävä sekä koneille että ihmisille. Mutta Bosque on edelleen hyvin kehittyneenä tässä vaiheessa; kannattajat eivät suosittele Bosquen käyttöä mihinkään tuotantotyöhön. Kehittäjiä kannustetaan kokeilemaan sitä.

Joitakin Bosquelle tehtyjä ominaisuuksia ja suunnitteluvaihtoehtoja ovat seuraavat:

  • Kaikki arvot ovat muuttumattomia, ja Bosque ottaa käyttöön toiminnallisen mallin, jossa on muuttumattomia tietoja. Koodilauseen vaikutuksen ymmärtäminen yksinkertaistuu, kun se on sivuvaikutukseton, Bosque-asiakirjoissa todetaan. Toiminnalliset kielet ovat hyötyneet tämän mallin mahdollistamista yksinkertaistuksista ohjelmakehitykseen, kehittyneistä työkaluista ja kääntäjien optimoinnista.
  • Toiminnallinen ohjelmointi on sulautettu lohkoihin ja {…} olkaimet sallimalla useita tehtäviä päivitettäville muuttujille var!.
  • Funktiot ovat ensiluokkaisia ​​arvoja ja tyyppejä.
  • Lambda-rakentajat yhdistävät lambda-rungon koodimääritelmän muuttuvan kopiosemantiikan kanssa kaapattujen muuttujien sulkemiseksi lambda-luomisessa.
  • Yksinkertainen, mielipiteettömän tyyppinen järjestelmä sallii useiden rakenteellisten, yhdistelmä- ja nimityyppien käytön tarkoituksen välittämiseksi ja ongelmalohkon asiaankuuluvien ominaisuuksien koodaamiseksi.
  • Kirjoitetut merkkijonot tarjoavat mekanismin tunnetun rakenteen nostamiseksi merkkijonon sisällöstä tyyppiin tavalla, joka on merkityksellinen ihmisille ja jota tyyppitarkastaja käyttää.
  • Parametrit voidaan pujottaa läpi viite väite kulkee. Vaihtoehto monen palautuksen arvoille tämä yksinkertaistaa tilanteita, joissa muuttuja siirretään menetelmälle, joka saattaa käyttää ja päivittää sitä. Parametrin päivityksen salliminen eliminoi tarvittavan ylimääräisen palautusarvon hallinnan. Tätä ominaisuutta ei ole vielä otettu käyttöön.
  • Annetaan nimettyjä argumentteja, samoin kuin lepo- ja levitysoperaattorit. Nämä voivat suorittaa datan manipulointia osana kutsuja ja rakentajaoperaatioita.
  • Ensiluokkaista tukea tarjotaan erilaisten invariantien, terveystarkastusten ja diagnostisten väitteiden ilmaisemiseen.
  • Bossin algebraaliset joukkotoiminnot alkavat joukkolukuilla ja data-arvojen päivityksillä. Operaattorit tuottivat apua keskittämällä koodin yleiseen tarkoitukseen ja antavat kehittäjien antaa algebrallisen perustelun tietorakenteen operaatioille. Algebralliset toiminnot tarjotaan tietotyypeille, joukkoille, tietueille ja nimellistyypeille sekä toiminnoille, kuten projektio, monipäivitys ja yhdistäminen.
  • Iteratiivisella prosessointikyvyllä strukturoituja silmukoita vaihdetaan korkean tason iteratiivisiin prosessointirakenteisiin. Samojen silmukoiden kirjoittamisen kattilalevyn poistaminen eliminoi virheluokat, mukaan lukien sidotut laskelmat; aikomus tehdään tarkoitukselliseksi.

Bosquesta tulee Microsoftin uusin kieliprojekti, joka on tuottanut kieliä, mukaan lukien olio-orientoitu kieli C #; F #, toiminnallinen kieli; ja TypeScript, tyypillinen JavaScript-supersarja. Ohjelmistojätti on onnistunut menestyksekkäästi kehittämään suosiota saavia kieliä. Esimerkiksi C # sijoittui viidenneksi ja TypeScript 12. sijalle viimeisimmissä RedMonk-kieliluokituksissa, jotka perustuvat Stack Overflow -keskusteluihin ja GitHubin koodin käyttöön.

Löydät Bosque-dokumentaation, esimerkkejä ja referenssitoteutuksen GitHubista. Opetusohjelmat ovat parhaillaan töissä.

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