Tulajdonképpen egyetlen társaság foglalkozik igazán (vagyis jelentős mértékben) a BETA nyelvvel kapcsolatos termékek készítésével, a Mjølner Informatics. Ez a társaság egy összetett fejlesztői rendszert alkotott, melyet Mjølner BETA Systemnek nevezett el.
Érdekesség: az egyes komponensek nevei (pl. Valhalla) a skandináv mitológiából erednek. Például a Mjølner név a legerősebb isten, Thor varázserejű kalapácsát azonosítja, amely a tökéletes eszköz szimbóluma, sohasem vall kudarcot, és mindig a megoldandó feladatnak megfelelő nagyságúvá alakul.
A Mjølner fejlesztői környezet a következő komponenseket tartalmazza: egy forrásböngészőt és -editort, egy forrás szintű debuggert, egy interfész-editort és egy osztály-diagramm szerkesztőt (CASE tool).
A Sif egy általános grammatika alapú editor, ami különösen hasznos a BETA programok böngészésére és editálására. A modularitás a BETA-ban a fragment-rendszerrel van biztosítva, mellyel a fragmentek egyetlen BETA programmá alakíthatóak.
A Sif számos alapkomponenst tartalmaz: egy forrásböngészőt (Ymer), egy fragment-csoport editort és egy fragment form editort. A Sif integrálva van a BETA fordítóval, mely a szemantikus hibák megtalálásához és javításához kiváló támogatást nyújt.
Forrásböngésző és -editor
A Sif a következő funkciókkal rendelkezik:
Forrásböngésző
A forrásböngésző lehetővé teszi, hogy projekteket kezeljünk. Egy projekt lehet fájlok gyűjteménye, egy fájlkönyvtár, vagy egy BETA program függőségi gráfjának a része. A fragment-struktúra kapcsolatai - mint az ORIGIN vagy az INCLUDE - könnyen követhetőek.
Fragment-csoport editor
A fragment-csoport editor egy magas szintű editor, mellyel a BETA programok függőségi gráfját lehet manipulálni, például létrehozni vagy törölni teljes fragment formokat a fragment-csoportban, és létrehozni vagy módosítani olyan fragmentek közötti kapcsolatokat, mint az ORIGIN és az INCLUDE.
Fragment Form Editor
A fragment form editor egy strukturális editor, mely a fragment formokon belül működik. A struktúra-szerkesztés egy nagyon hatékony technika a szintaktikai hibáktól mentes program szerkesztéshez. A fragment form szinten is biztosít a Sif hasznos böngészési lehetőségeket, melyek a BETA programok szintaktikai és szemantikai struktúráján alapulnak.
Struktúraszerkesztő
A struktúraszerkesztés alapötlete, hogy a programok inkább a logikai struktúrájuk szerint legyenek kezelve, mintsem szöveges elemekként. Ennek a megközelítésnek az az előnye, hogy csak logikailag összefüggő részek illeszthetők be vagy törölhetők, és ezáltal mindig megtarthatók a nyelv szintaktikai szabályai.
A strukturális szerkesztés olyan applikáció-orientált nyelvek esetén is nagyon hasznos, melyeket a végfelhasználóknak szántak, mivel az alkalmi felhasználóknak és a kezdőknek sok problémája lehet a konkrét szintaxissal. Egy strukturálisan szerkesztett programot nem szükséges elemezni, ezzel idő takarítható meg a fejlesztésben.
Szöveges szerkesztés
A strukturális szerkesztés nagyon hatékony a magasabb szintű szerkesztések esetén, például a program átfogó struktúrájának készítésekor, vagy nagy kódok átmozgatásakor. A részletesebb szinten a szövegszerkesztési módszer sokkal hasznosabb, ezért a programozók természetesen szabadon választhatnak a strukturális és a szöveges szerkesztés között. A program minden részlete szerkeszthető szövegesen.
Bővülési elemzés
Minden program a szerkesztés közben elemzés alatt áll. Csak a szerkesztett rész elemződik.
Alkalmazkodó bővülési nyomtatás
A szerkesztő tartalmaz egy hozzáadott nyomtatási algoritmust, mely mindig úgy jeleníti meg a programot, hogy az kitöltse a képernyőt, vagy a papírt.
Absztrakt megjelenítés és böngészés
A szerkesztő képes a programot minden szinten megjeleníteni. A program legmagasabb szintjén a felhasználó áttekintést kap az osztályokról és eljárásokról. Lehetséges az osztályokon és eljárásokon való böngészés úgy, hogy egyre több és több információt kapjunk. A program különböző szinteken való kinyomtatása a dokumentáció egy jó alapja lehet.
A dokumentáció és a kommentek integrálása
A felhasználó meghatározhatja, hogy a kommentek megjelenjenek-e vagy sem. Azt is meghatározhatja, hogy a kommentek a program részeként, vagy különálló ablakban jelenjenek meg. Egy szépen nyomtatott program csak az osztályok és eljárások interfész részét és a hozzájuk tartozó kommenteket tartalmazza. Ez lehetővé teszi egy interfész-specifikáció kinyerését a programkódból.
Hypertext lehetőségek
A szerkesztő tartalmaz hypertext lehetőségeket is. A kommentek kezelése egy példa a program- és szövegrészek közötti hypertext kapcsolatra. Egy másik fajtája a hypertext-kapcsolatnak, amikor egy nevet a programban összekapcsolunk a hozzá tartozó névdeklarációval. Ez a szemantikai kapcsolat nagyon hasznos, amikor nagy programokkal dolgozunk. A fragment-csoport szinten egyéb példák az ORIGIN és az INCLUDE kapcsolatok, melyek összekapcsolják a SLOT-okat a hozzájuk tartozó fragment formmal, és viszont.
Metaprogramozási rendszer
A szerkesztőbe egy metaprogramozási rendszert is beépítettek. A felhasználónak lehetősége van a saját metaprogramozási eszközeivel dolgozni, mely egyszerűen integrálható a szerkesztővel. Ezt a bővíthetőséget a rugalmas kommunikációs modell és az editor objektumorientált implementációs nyelve - a BETA - biztosítja.
Grammatika-alapok
A szerkesztő grammatika-alapú, ami azt jelenti, hogy bármely nyelv támogatására képes, mely egy környezetfüggetlen nyelvtannal van megadva. Minden fent említett lehetőség (a szemantikai kapcsolatok kivételével) támogatott az ilyen nyelvekre.
A Valhalla egy forrás-szintű debugger a Mjølner rendszerben, mely egy objektumorientált környezetet biztosít a BETA programok debuggolásához. A Valhallával lehetséges a program futásának ellenőrzése, az objektumok vizsgálata futásidőben és a BETA kód nyomkövetése.
A felhasználói felület két részre osztott: a forrásböngészőre és a Valhalla Universe-re. A forrásböngésző lehetővé teszi a debuggolt alkalmazás forráskódjának böngészését, a Valhalla Universe pedig a futásidejű objektumok megtekintését teszi lehetővé az alkalmazás futása alatt.
A program futása ellenőrizhető például töréspontok elhelyezésével és egyszerű léptetéssel a BETA forráskód szintjén. A futásidejű hibákat úgy adja vissza a Valhalla, hogy megmutatja a vétkező objektumot vagy kódot. Innen a hiba forrása egyszerűen megtalálható.
A Mjølner Debugger használatakor lehetséges:
Egy töréspont
A töréspontok és az aktuális végrehajtási pont a forrásböngészőben látható.
Megjelölt pontok (Trace points)
Az alkalmazás nyomonkövetésének egyszerűbbé tétele céljából a Valhalla lehetővé teszi megjelölt pontok létrehozását. A "trace point" a forráskód egy pontja egy hozzáadott szöveggel. Minden alkalommal, amikor a végrehajtás eléri ezt a pontot, ez a szöveg kiíródik a standard outputra.
Töréspontok
Az objektumok végrehajtás alatti állapotának vizsgálatához a Valhalla töréspontokat biztosít. A töréspont a forráskód egy pontja. Amikor a futtatás eléri a töréspontot, az ellenőrzés visszakerül a Valhallához, így lehetővé téve az adott állapotban a végrehajtás állapotának, a futás idejű objektumoknak a vizsgálatát stb..
Végrehajtás-ellenőrzés
A Valhallával ellenőrizhető a BETA program futása. Elindítható és megállítható a futás, beállíthatóak megjelölt pontok és töréspontok, léptethető a futás gépikódú szinten, BETA utasítás szinten, átugorva az eljárás hívásokat stb.
Futási idejű vizsgálat
A Valhalla a futó alkalmazása futási idejű struktúrájának vizsgálatához kiterjesztett vizsgálati lehetőséget biztosít. Megvizsgálható az objektumok állapota és a futásidejű stack.
A Frigg a Mjølner rendszer interfész-editora, ami gyors prototípus-készítést biztosít a rendszertervezőknek és fejlesztőknek.
A Frigg egy grafikus szerkesztőt szolgáltat, ami kapcsolatban van a strukturális szerkesztővel, így biztosítva egy prototípus-környezet létrehozását. A grafikus szerkesztő lehetővé teszi, hogy a felhasználó létrehozza a felhasználói felületet közvetlen szerkesztéssel, míg a szükséges kód automatikusan generálódik.
A grafikus GUI szerkesztő
A generált kód kiegészíthető és átalakítható a struktúra-szerkesztővel, és az átalakítás a fejlesztés teljes tartama alatt végbemegy, mert a grafikus szerkesztő képes a kód nyomkövetésére annak ellenére, hogy az megváltozott a struktúra-szerkesztőben (bővülő visszafelé haladó tervezés). A fejlesztő váltogathat a felhasználói felületen végzett munka és az alapfunkciók kódolása között.
A Frigg szerkesztő integrációja teljesíti a Mjølner rendszer egységes program-reprezentációjának használatát: absztrakt szintaxisfák (ASTs abstract syntax trees). Az ATSs manipulációja a metaprogramozási rendszeren keresztül történik. Ezért minden szerkesztő, ami ugyanazon az AST-n dolgozik, értesül a változásokról, így a szerkesztők képesek megőrizni a konzisztenciát.
A Frigg arra használja a fragment-rendszert, hogy:
A Frigg által generált kód a GUIenv osztályok specializációja
A Freja a Mjølner rendszer osztálydiagram-szerkesztő eszköze, mely az általános modell-nyelv fejlesztést támogatja a BETA implementációs nyelvvel. A Sif-fel együtt a Freja zavartalan átmenetet biztosít a tervezési diagramok és az implementációs kód között.
Osztálydiagram-szerkesztő
Az osztálydiagram-szerkesztő eszköz a következőket szolgáltatja:
Diagram-szerkesztő
Tervezési diagramok (osztálydiagramok) hozhatóak létre és módosíthatóak.
Automatikus kódgenerálás
A kódvázak automatikusan generálódnak a diagramok alapján.
Visszafelé haladó tervezés
A tervezési diagramok automatikusan generálódnak a programkód alapján.
A tervezési leírások és a programkód egyidejűleg szerkeszthetőek
A tervezési leírások és a hozzájuk tartozó programkód egyidejűleg nézhetőek és szerkeszthetőek, például a tervezési diagramok változtatása változást eredményez a programkódban, és viszont.
Oda-vissza tervezés
Ha például az osztálydiagram-szerkesztő eszközön kívül attribútumokat, műveleteket vagy teljes osztályokat változtatunk, akkor a diagram automatikusan frissül, a következő betöltéskor.
A Freját és a Sifet kétféle értelemben is szorosan integrálták.
Először is a Freja és a Sif a fejlesztés alatt álló program általános reprezentációján osztoznak. A strukturális szerkesztés technikája kényelmes reprezentációt nyújt, nevezetesen az AST-t (abstract syntax tree). Az AST jól nyomtatható szövegesen a Sif-ben és grafikusan a Freja-ban.
Másodszor, kommunikálnak az AST-n végzett módosításokról. A Sif a szöveges, a Freja a grafikus reprezentáción keresztül manipulálja az AST-t. Ha valamelyik szerkesztő módosítja az AST-t, akkor a másik erről értesül, és a szükséges frissítések végrehajtódnak. Mivel a grafikus UML szintaxis csak a BETA program átfogó struktúráját tükrözi, sok módosítás a szöveges reprezentációban nincs hatással a grafikai reprezentációra. Viszont majdnem minden módosítás a tervezési diagramon - a diagram kinézetének módosításán kívül - azt eredményezi, hogy a szöveges reprezentáció aktualizálódik.
Nem szükséges minden reprezentációnak ugyanabban az időben láthatónak lennie. A fejlesztés kezdetén a felhasználó talán jobban szeretné csak a diagramokat látni, a szöveges reprezentáció csak később válik fontossá. Mivel a diagramok és a program az AST megjelenési formái, mindig újra reprodukálhatóak.
A támogatott platformok: Windows NT/95/98/2000/XP, Linux, SPARC - Solaris 2.7, 2.8, 2.9, Power Macintosh - MacOS 8 vagy 9 (MacOS 10.3.4. - GUI könyvtárak és eszközök nélkül).