BLISS

BLISS er et system programmeringssprog udviklet på Carnegie Mellon University, som WA Wulf, DB Russell, og AN Habermann omkring 1970. Det var måske den mest kendte systemer programmeringssprog lige indtil C fik sin debut et par år senere. Siden da, C lettede og BLISS falmet i ubemærkethed. Da C var i sin vorden, et par projekter inden for Bell Labs var diskuterer berettigelsen af ​​BLISS vs C.

BLISS er et typeløse blok struktureret sprog baseret på udtryk snarere end udsagn, og omfatter konstruktioner til håndtering af undtagelser, coroutines og makroer. Det omfatter ikke en goto erklæring.

Navnet er skiftevis siges at være en forkortelse for "Basic Language for gennemførelse af System Software" eller "System Software Implementering Sprog, Baglæns". Det blev undertiden kaldes "Bills Sprog til gennemførelsesforordning System Software", efter Bill Wulf.

Den oprindelige Carnegie Mellon compiler var kendt for sin omfattende brug af optimeringer, og dannede grundlag for den klassiske bog The Design af en Optimering Compiler.

December udviklet og vedligeholdt BLISS compilere til PDP-10, PDP-11, december Alpha, december PRISM, Intel IA-32, Intel IA-64 og VAX, og brugte det stærkt internt i 1980'erne; de fleste af de hjælpeprogrammer for VMS-operativsystemet blev skrevet i BLISS-32.

Sprog beskrivelse

Den BLISS sprog har følgende karakteristika:

  • Alle konstanter er fulde ord for at maskinen bruges, fx på en 16-bit maskine såsom PDP-11, en konstant er 16 bit; på en VAX computer, konstanter er 32 bit, og en PDP-10, en konstant er 36 bits.
  • En henvisning til en variabel er altid til adressen på denne variabel. For eksempel instruktionen refererer til tilsætning 8 til adressen på Z, ikke dens værdi. Hvis man har brug for at tilføje 8 til værdien af ​​Z, skal forvalget variablen med en periode; så man ville skrive at udføre denne funktion, som tilføjer 8 til indholdet af Z.
  • Overdragelse sker med standard symbol, f.eks - Som siger at skabe en fuld-ord konstant indeholdende 8, og gemme det i det sted, hvis adresse svarer til den i Z. Så du kan gøre noget lignende, som placerer den konstante 14 ind i adressen, som er 12 ord mere end adressen af Z.
  • Blok udsagn svarer til dem af ALGOL: en blok startes med en redegørelse og afsluttet med. Som med ALGOL, er udsagn afsluttes med semikolon. Når en værdi beregnes, gemmes det indtil næste redegørelse terminator - hvilket betyder, at en værdi kan beregnes, tildeles en variabel, og overføres til det næste sætning, hvis det ønskes. Alternativt kan en åben parentes anvendes til at begynde en blok, med tæt parentes anvendes til at lukke blokken. Når parenteser indgår i et udtryk, er de almindelige forrangsbestemmelserne anvendt, hvor i parentes udtryk beregnes først,
  • Betinget udførelse bruger udtrykket, der tester en sand-falsk tilstand, udfører alternative tiltag, og returnerer et resultat.
  • Sammenligning bruger søgeord som for lighed, for Større end, og ikke lig. For eksempel vil følgende kode tildele absolutte værdi af Z til den adresse, Q:
  • Identifikatorer skal erklæres før brug, typisk ved hjælp af søgeord. Erklære en variabel normalt forårsager compileren at afsætte plads til det; når det er nødvendigt, kan en variabel tildeles en fast maskine-adresse via erklæringen. Denne funktion bruges primært til at få adgang til enten maskine registre eller visse specielle adresser.
  • Subrutiner i sproget kaldes rutiner, og er erklæret med søgeordet.
  • Makroer, som giver mulighed for tekst substitution, angives med søgeordet.
  • Sproget understøtter arrays, som der henvises til som strukturer, og deklareret med søgeordet.
  • Sproget understøtter nogle højt niveau programmering konstruktioner såsom
    • Alternative udførelse stier via ekspressionen
    • Looping ved brug af udtrykket, som ligner ALGOL s FOR-sætning
    • Indbygget string funktioner
    • Visse automatiske data-konverteringer

Kilde eksempel

Det følgende eksempel er taget ordret fra Bliss Language Manual:

Versioner

  • BLISS-10
  • BLISS-11 - et kryds compiler til PDP-11
  • BLISS-16
  • BLISS-16C - December version af BLISS-11
  • BLISS-32
  • BLISS-36
  • BLISS-64
  • Fælles BLISS - bærbar delmængde
  0   0
Næste artikel Colin Jamieson

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha