Programmering

Microsoft sigter mod enkelhed med Bosque programmeringssprog

Microsoft har lanceret et nyt open source-projekt til udvikling af Bosque-programmeringssproget. Formålet med Bosque-sprogprojektet er at opbygge et funktionelt programmeringssprog, der undgår "utilsigtet kompleksitet" i udviklingsprocessen.

Designmål for Bosque-sproget inkluderer forbedret udviklerproduktivitet, bedre softwarekvalitet og aktivering af en række nye compilere og værktøjserfaringer. Det nye sprog er placeret som et eksperiment i reguleret design til en maskinassisteret, hurtig og pålidelig softwareudviklingslivscyklus.

Et centralt mål er eliminering af utilsigtet kompleksitet. Bosque-kode formodes at være enkel og let at forstå for både maskiner og mennesker. Men Bosque forbliver meget i udvikling på dette tidspunkt; tilhængere anbefaler ikke at bruge Bosque til noget produktionsarbejde. Udviklere opfordres til at eksperimentere med det.

Nogle funktioner og designvalg foretaget for Bosque inkluderer følgende:

  • Alle værdier er uforanderlige, hvor Bosque vedtager en funktionel model med uforanderlige data. Forståelsen af ​​virkningen af ​​en erklæring om blok af kode forenkles, når den er fri for bivirkninger, siger Bosque-dokumentation. Funktionelle sprog har nydt godt af forenklinger til programudvikling, sofistikerede værktøjer og kompilatoroptimeringer aktiveret af denne model.
  • Funktionel programmering er sammensmeltet med blokomfang og {…} seler ved at tillade flere opgaver til opdaterbare variabler var!.
  • Funktioner er førsteklasses værdier og typer.
  • Lambda-konstruktører kombinerer kodedefinition for lambda-kroppen med en variabel kopisemantik til lukning, der er fanget variabler ved oprettelse af lambda.
  • Et simpelt, ikke-opfattet typesystem tillader brug af en række strukturelle, kombinations- og nominelle typer til at formidle hensigt og kode for relevante funktioner i problemdomænet.
  • Typede strenge tilvejebringer en mekanisme til at løfte kendt struktur om indholdet af en streng ind i typen på en måde, der er meningsfuld for mennesker og bruges af typekontrollen.
  • Parametre kan trækkes igennem ref argument passerer. Et alternativ til multi-return værdier, dette forenkler scenarier, hvor en variabel sendes til en metode, der kan bruge og opdatere den. Hvis du tillader opdateringen i parameteren, elimineres den ekstra returværdistyring, der er påkrævet. Denne funktion er endnu ikke implementeret.
  • Navngivne argumenter leveres, ligesom hvile- og spredningsoperatører. Disse kan udføre datamanipulation som en del af påkaldelser og konstruktøroperationer.
  • Førsteklasses support tilbydes til at udtrykke en række invarianter, sundhedskontrol og diagnostiske påstande.
  • Bulk algebraiske datahandlinger i Bosque begynder med masselæsning og opdatering af dataværdier. Operatører produceret hjælper med at fokusere på den overordnede hensigt og lade udviklere udføre algebraisk ræsonnement på datastrukturoperationer. Algebraiske operationer leveres til datatyper, tupler, optegnelser og nominelle typer såvel som til operationer inklusive projektion, multiopdatering og fletning.
  • Med en iterativ behandlingsfunktion handles strukturerede sløjfer til iterative bearbejdningskonstruktioner på højt niveau. Fjernelse af kedelpladen for at skrive de samme sløjfer eliminerer klasser af fejl inklusive bundne beregninger; hensigt er klargjort hensigt.

Bosque bliver det seneste sprogprojekt hos Microsoft, der har produceret sprog, herunder C #, et objektorienteret sprog; F #, et funktionelt sprog; og TypeScript, et indtastet supersæt af JavaScript. Softwaregiganten har haft en god grad af succes med at udvikle sprog, der vinder popularitet. C # rangerede for eksempel femte og TypeScript 12. i de seneste RedMonk-sprograngeringer, som er baseret på diskussioner i Stack Overflow og kodeforbrug i GitHub.

Du kan finde Bosque-dokumentation, eksempler og en referenceimplementering på GitHub. Selvstudier er i gang.