Programmering Miljö Forskning

Link: http://cs.brown.edu/~spr/research/env.html

Historia

Programmering är en svår uppgift. Målet för en programmeringsmiljö är att tillhandahålla verktyg för att hjälpa programmeraren och förenkla uppgiften. Vi är en stark förespråkare av programmering verktyg och har varit att utveckla sådana verktyg för en lång tid. Medan en grundutbildning, som jag arbetat på Dartmouth Basic runtime-system. En av de viktigaste nyheterna var här för att lägga till en källa-språk debugger för miljön.

Våra riktig forskning i miljöer programmering började med tillkomsten av arbetsstationer (Apollos, Solar, Percs, …). Vi (tillsammans med flera andra grupper) tyckte att man borde kunna använda sig av den extra datorkraft och den grafiska displayen för att förenkla och förbättra erfarenhet av programmering. Vårt första försök här återspeglas i PECAN system. PECAN används kompilator-teknik för att generera ett verktyg för ett språk. De verktyg som ingår text (delvis syntax-regi) och grafiskt (Nassi-Schneiderman diagram, Rothon diagram) redaktörer, semantik utsikt över symbol-tabell, kontroll av flöde och uttryck, och utförande utsikt över stacken och kod. Det innehöll också inkrementell kompilering som användaren skrivit in. Det var ett kul system och lärt oss en hel del, men det var verkligen inte praktiska (det tog slut på minne på ca 1000 rader kod), och inte dra full fördel av grafikfunktionerna av arbetsstationer.

Baserat på detta arbete har vi nästa försökt att göra en bättre användning av det grafiska kapacitet av arbetsstationer genom att använda det visuella språk. Vi insåg att det visuella språk som vanligtvis endast täcker en begränsad del av program (t ex endast reglera flöde eller endast data flow), och för att kunna göra riktiga program som vi skulle ha för att låta programmerare arbeta med flera sådana språk. För att uppnå detta har vi utvecklat vad vi kallar en konceptuell programmeringsmiljö TRÄDGÅRDEN, att låta programmeraren utveckla nya grafiska eller textbaserade språk (med lämpliga visuella syntax och lämpliga semantik), och boet och annars intermix dessa språk i ett komplett system. Systemet finns lämpliga grafiska och textuella redaktörer, en Lisp-liknande element, en fullständig delade objekt butik (för att låta flera programmerare arbetar på samma program på en gång och till stöd för distribuerade applikationer), Smalltalk-som webbläsare, kan flera trådar, och även en kompilator. Systemet används för att utveckla ett brett utbud av visuella språk.

Och samtidigt utveckla TRÄDGÅRD, flera personer utmanas den totala forskningen i miljöer programmering, som hävdar att även de verktyg som vi och andra var att utveckla var trevligt och kan vara bra, inte alls faktiskt var praktiska och inget av de projekt som verkligen skulle kunna använda sig för utveckling, vardagliga utveckling av program för UNIX (eller något annat OPERATIVSYSTEM på den tiden) gjordes med hjälp av separata och text-redigerare, debuggers, etc. det hade inte förändrats på tio år. Vi började därför att utveckla en praktisk miljö för verklig planering. Vi insåg att du inte behöver ha en gemensam butik eller central representation för att få ett integrerat miljö, inte heller du behöver för att utveckla nya verktyg har grafiska användargränssnitt. Istället har vi utvecklat ett enkelt budskap-baserad integration mekanism som låter verktyg prata med en annan, och en serie av omslag som avses grafiska gränssnitt till befintliga verktyg (dbx, gdb, göra, rcs, …). Resultatet var att FÄLTET miljö. Som det har utvecklats, vi utökade miljö med en mängd olika grafiska vyer inklusive strukturella utsikt (flödesschema, klass hierarki) och dynamiska vyer (datastruktur visar, heap vizualization, i/O-visualiseringar). OMRÅDET var ganska framgångsrik. Vi har använt det i flera år i våra intro kurser programmering, det var kommersialiseras av DEC (SÄKRING), och har kopierats av HP (Softbench), Solen (Tooltalk), SGI, och andra.

Vår nästa miljön, ÖKNEN, försökt att utvidga OMRÅDET på flera sätt. För det första, det ville ge programmeraren med en högkvalitativ visning av koden. Detta gjordes genom att utvidga Adobe Framemaker som ett program editor. Förlängning utvalda Baeker-Marcus stil kod formatering som var gjort som användaren har skrivit som ingår semantisk sökning av symboler över hela systemet (och inte bara den aktuella filen). För det andra, vi ville låta programmeraren se systemet på olika sätt, att kunna isolera den kod som är relevanta för en viss ändring eller funktion. Detta gjordes genom att dela upp programmet i mindre bitar och ha redaktör arbete på virtuella filer som består av olika fragment som samlats in från den faktiska källfiler. Programmeraren kan ange en uppsättning fragements med hjälp av lämpliga frågor. Fragment var under configuration management och ändringar som gjorts i den virtuella filer var integrerade i den ursprungliga källan filer när den virtuella filerna sparas. Slutligen, vi ville ge högre kvalitet på visualiseringar av kod och utförande och därmed utvecklat en 3D visualisering system som var integrerade i miljön.

Våra senaste insatser har koncentrerats på att ge stöd för utveckling och programvara konsekvens snarare än att försöka att ge en omfattande programmering miljö. Det här paketet, TRAKT, förutsätter att det finns verktyg för att skapa och underhålla alla de olika artefakter som följer en programvara system: de specifikationer, design, källa, testfall, dokumentation, etc. Semantik för var och en av dessa artefakter är då definieras i termer av en uppsättning av metaconstraints med respekt till den andra artefakter. Designen är sedd som begränsningar på källan (och vice versa), så att en klass i en UML-diagram har en motsvarande klass i källan, språk-regler begränsar form av källkod, dokumentation måste vara förenliga med koden, testfall skall täcka kod och köras som kod. Allt detta är kontrollerat stegvis som använder redigerar artefakter och eventuella inkonsekvenser visas med hjälp av ett grafiskt gränssnitt.

Medan TRAKT koncentrerar sig på den statiska strukturen av källan och olika programvaror och artefakter, vi insåg att några av de specifikationer och design av artefakter som är relaterade till hur programmet snarare än i själva koden. För att underlätta detta, har vi utvecklat CHET, ett verktyg för att kontrollera klass och bibliotek specifikationer i verkliga programvaror och system. CHET kan ta indata baserade på en utökad automater över händelser (som kan härledas från UML interaktionsdiagram, klass kontrakt, etc.), hitta alla förekomster av specifikation i ett stort system, och sedan in varje instans.

Vårt senaste arbete innebär en ny front för programmering miljöer, Kod Bubblor. Detta arbete går gback till Desert view för att visa fragment av filer, till exempel enskilda funktioner, och är utformad så att programmerare kan se alla relevanta kod för deras nuvarande uppgift, ett effektivt sätt att deras nuvarande arbete ställer, på skärmen på en gång.

Leave a Reply

Your email address will not be published. Required fields are marked *