-
Die
vorliegende Erfindung betrifft im allgemeinen Computersoftware und
insbesondere eine vielseitige Softwaresprache, die die Ausgabe von
einem Allzweckrechner zuschneidet, um ein Spezialzwecksystem zu steuern,
wie bspw. ein Konsum- bzw.
Unterhaltungselektronikgerät.
-
Mit
Computern, die nach und nach in jedes Haus einziehen, hat die Annäherung von
Rechner- und Unterhaltungselektronik letztendlich begonnen. Diese
Annäherung
hat viele zwangsläufige
bzw. zwingende Anwendungen in solchen Bereichen wie Erziehung, Unterhaltung,
Haussicherheit und Hausautomatisierung. Um diese Annäherung zu
steigern, sollte ein Allzweckcomputer jedoch in der Lage sein, verschiedene
Typen von elektronischen Einrichtungen nahtlos und effizient zu
steuern. Dies bedeutet, dass verschiedene Unterhaltungselektronikgeräte, wie
bspw. das Fernsehen, eine tragbare Anzeige, ein Videorekorder oder
eine Kamera, einfach als Eingabe/Ausgabeerweiterungen des Computers
für spezifische
Anwendungen verwendet werden sollten. Dies bedeutet ebenfalls, dass
der Computer einigermaßen
als ein Server für
diese Geräte
dienen sollte.
-
Bisherige
Verfahren, um Unterhaltungsgeräte
anzutreiben, die einen Computerserver verwenden, basieren typischerweise
auf Software und Hardware, die spezifisch auf die Geräte zugeschnitten
sind. Die drei weitgehend bekannten Ansätze sind der Netzwerkcomputeransatz,
der Eigenformatansatz und der kleine aber vollständige Computeransatz. Diese
Ansätze sind
typischerweise nicht skalierbar und verhältnismäßig unflexibel. Sie versuchen,
eine eng gekoppelte Annäherung
des Computers und der Unterhaltungselektronik zu erreichen. Jedesmal,
wenn eine neue Anwendung hinzugefügt wird oder ein neues Gerät aufgenommen
wird, muss ein neues Produkt, das den Computer mit der Elektronik
verknüpft,
gebaut werden, typischerweise von Anfang an.
-
Es
gibt ebenfalls eine Anzahl von Optionen, um Unterhaltungselektronikvorrichtungen
miteinander zu verbinden und mit Computern, die verschiedene Verbindungslösungen verwenden.
Die beiden beliebtesten sind der Universelle Serielle Bus (Universal
Serial Bus: USB) und das IEEE 1394 (ebenfalls bekannt als FireWire).
Diese Technologien beschäftigen
sich hauptsächlich
mit der physikalischen Schicht (das Medium) und den Verbindungsschichtprotokollen
und nicht mit den Anwendungen. Der Mangel an neuen Anwendungen und Anwendungsportierungen
waren ein Hauptproblem, das einer weitverbreiteten Entwicklung dieser
Verbindungsstandards entgegenstand.
-
Weiterhin
sind Verfahren nach dem Stand der Technik verfügbar, um Befehle in einer Sprache
zu Befehlen in einer weiteren Sprache umzuwandeln, wie in typischen
Compilern. Diese ändern
die Befehle oder die Syntax aber nicht die Daten, die erhalten werden,
um sicherzustellen, dass keine Informationen verlorengehen. Solche
Verfahren sind bspw. in der Schrift "Verfahren zum Implementieren bidirektionaler
Datenstromübertragungen" (Method for Implementing
Bidirectional Datastreams Transforms), IBM Technical Disclosure Bulletin,
Band 32, Nr. 12, 1. Mai 1990, Seiten 338 bis 341, beschrieben.
-
Es
ist weiter aus der Druckschrift WO 97/37202 bekannt, einen Computer über einen
externen Busadapter mit Unterhal tungselektronikvorrichtungen zu
verbinden. Der Computer hat einen Prozessor, der konfiguriert ist,
ein erstes digitales Ton- bzw. Audiosignal zu erzeugen, das erste
digitale Audiosignal mit einem zweiten digitalen Audiosignal zu
vermischen, um ein einheitliches bzw. vereinigtes digitales Audiosignal
zu erzeugen, und um das vereinigte digitale Audiosignal zu einer
Unterhaltungselektronikvorrichtung unter Verwendung des externen
Busses zu übertragen.
-
Es
sollte offensichtlich sein, dass es immer noch ein Bedarf an Verfahren
und einer Vorrichtung für
einen Allzweck- bzw.
Universalcomputer besteht, um verschiedene Typen von Spezialzwecksystemen
auf eine effiziente Weise zu steuern.
-
Die
vorliegende Erfindung betrifft Verfahren und eine Vorrichtung, die
die Konvergenz eines Berechnens und von Unterhaltungselektronik
beschleunigen wird. Die vorliegende Erfindung ermöglicht einem
Computer, fast jeden Typ von Unterhaltungselektronik auf eine effiziente
Weise zu steuern, vollständig
bis zu dem Anwendungsniveau.
-
Gemäß einem
ersten Aspekt stellt die Erfindung einen Wandler zum Transformieren
eines Satzes von syntaktischen und abgetasteten Daten von einem
Allzwecksystem bereit, um die Daten für ein Spezialzwecksystem zuzuschneiden,
wobei der Wandler ein erstes Wandlermodul aufweist, das betriebsbereit
bzw. wirksam mit dem Allzwecksystem gekoppelt ist, um die syntaktischen
und abgetasteten Daten von dem Allzwecksystem zu empfangenen, und
die empfangenen Daten in einen verschiedenen Satz von syntaktischen
und abgetasteten Daten transformiert, dadurch gekennzeichnet, dass
der Wandler weiterhin ein zweites Wandlermodul aufweist, das betriebsbereit
mit dem ersten Wandlermodul gekoppelt ist, um die syntaktischen
und abgetasteten Daten zu empfangen, die durch das erste Wandlermodul
erzeugt werden, und die emp fangenen Daten in einen weiteren Satz
von syntaktischen und abgetasteten Daten transformiert, die verschieden
von den anderen beiden Sätzen
von syntaktischen und abgetasteten Daten sind, um diese für das Spezialzwecksystem
zuzuschneiden bzw. darauf abzustellen, wobei zumindest ein Wandlermodul
in zwei Teile unterteilt ist, mit einem Teil, der die syntaktischen
Daten in eine Programmiersprache übersetzt, und die übersetzten
syntaktischen Daten und die abgetasteten Daten nach der Übersetzung
vermischt bzw. verbunden werden.
-
Gemäß einem
weiteren Aspekt stellt die vorliegende Erfindung einen Wandler zum
Transformieren eines Satzes von syntaktischen und abgetasteten Daten
von einem Spezialzwecksystem bereit, um die Daten für ein Allzwecksystem
zuzuschneiden, wobei der Wandler ein erstes Wandlermodul aufweist,
das betriebsbereit mit dem Spezialzwecksystem gekoppelt ist, um
die syntaktischen und abgetasteten Daten von dem Spezialzwecksystem
zu empfangen, und die empfangenen Daten in einen verschiedenen Satz
von syntaktischen und abgetasteten Daten wandelt, dadurch gekennzeichnet,
dass der Wandler weiterhin ein zweites Wandlermodul aufweist, das
betriebsbereit mit dem ersten Wandlermodul gekoppelt ist, um die
syntaktischen und abgetasteten Daten zu empfangen, die durch das
erste Wandlermodul erzeugt werden, und die empfangenen Daten in
einen weiteren Satz von syntaktischen und abgetasteten Daten wandelt,
die von den anderen beiden Sätzen
von syntaktischen und abgetasteten Daten verschieden sind und für das Spezialzwecksystem
zugeschnitten sind, wobei zumindest ein Wandlermodul in zwei Teile
unterteilt ist, mit einem Teil, der syntaktische Daten in eine Programmiersprache übersetzt,
und wobei die übersetzten
syntaktischen Daten und die abgetasteten Daten nach der Übersetzung
miteinander verbunden werden.
-
Typische
Ausgaben von dem Computer umfassen sowohl syntaktische Daten, wie
bspw. Textprogramme, und abgetastete Daten, wie bspw. Bilder. Die
Ausgaben sind in einem allgemeinen Format mit der Absicht, dass
diese durch weitere Allzweckcomputer verwendet werden können, nicht
aber von verschiedenen elektronischen Geräten mit verschiedenen Eigenschaften.
Die vorliegende Erfindung betrifft einen Wandler, der sowohl die
syntaktischen als auch die abgetasteten Daten von den Ausgaben eines
Allzweckcomputers ändert, um
diese für
Spezialzwecksysteme oder Geräte
zuzuschneiden bzw. auf diese abzustellen.
-
Einige
der Vorteile der vorliegenden Erfindung umfassen:
- 1.
Allgemeinheit: Die Erfindung kann auf irgendeiner Anwendung und
irgendeiner Eingabe/Ausgabevorrichtung angewendet werden.
- 2. Skalierbarkeit: Die Erfindung erlaubt der Anwendung, in verschiedenen
Größen auf
dem Computer oder auf dem Konsumentengerät abgelegt zu sein.
- 3. Portabilität:
Die Erfindung ist nützlich
und kann auf kompletten Computern oder auf eingebetteten Vorrichtungen
laufen.
- 4. Zusammensetzbarkeit: Wandler können zusammengesetzt werden.
Dies ermöglicht
einem, modulare Wandler zu erstellen, was eine Erweiterbarkeit von
Systemen und eine Wiederverwendung von Wandlern ermöglicht.
- 5. Anwendungen, die unter Verwendung der erfundenen Wandlerverfahren
gestaltet oder abgebildet sind, können die Größen der Wandlung vererben,
wie bspw. die unmittelbar oberhalb beschriebenen Vorteile.
-
Die
erfundene Wandlungstechnik kombiniert die Stärken einer automatischen Übersetzung
(Sprachen) und eines Transcodierens bzw. Umschlüsselns (Signale) basierend
auf einer erfundenen Sprache. In einer Ausführungsform umfasst der Wandler
zwei Wandlermodule. Das erste Modul ist an den Allzweckcomputer gekoppelt,
um einen Satz von syntaktischen und abgetasteten Daten von dem Computer
zu empfangen. Das Modul transformiert dann die empfangenen Daten,
um einen verschiedenen Satz von syntaktischen und abgetasteten Daten
zu erzeugen. Dann empfängt
das zweite Modul den Satz von syntaktischen und abgetasteten Daten
von dem ersten Modul und transformiert die empfangenen Daten in
noch einen weiteren Satz von syntaktischen und Abtastdaten, die
verschieden von den anderen beiden Sätzen von syntaktischen und
abgetasteten Daten sind, um das Spezialzwecksystem zu steuern.
-
In
einer Ausführungsform
gibt es fünf
umfassende Kategorien von Wandlermodulen, nämlich Transport-, Anzeige-,
Nutzerschnittstellen-, Abbildungs- und Steuermodule. Bei Verwendung
eines oder mehrerer Wandlermodule können die Daten gewandelt werden,
offline bzw. rechnerunabhängig
oder in Echtzeit für
eine Eingabe/Ausgabeeinheit.
-
Es
sei bemerkt, dass die in der Spezifikation verwendete Sprache vornehmlich
für eine
Lesbarkeit und aus Instruktionsgründen ausgewählt wurde und wohl nicht ausgewählt wurde,
um den Erfindungsgegenstand zu be- oder umschreiben. Ebenfalls sind
die Merkmale und Vorteile, die in der Spezifikation beschrieben
sind, nicht allumfassend. Andere Aspekte und Vorteile der vorliegenden
Erfindung werden dem Fachmann deutlich werden, angesichts der Spezifikation,
die beispielhaft die Prinzipien der Erfindung erläutert.
-
Eine
Ausführungsform
der vorliegenden Erfindung wird nun lediglich beispielhaft und unter
Bezugnahme auf die beigefügte
Zeichnung beschrieben.
-
1 zeigt
ein Beispiel eines Allzweckcomputers, der Spezialzwecksysteme steuert,
basierend auf der vorliegenden Erfindung.
-
2 zeigt
ein Beispiel eines Implementierungsmodells eines Wandlers der vorliegenden
Erfindung.
-
3 zeigt
ein Beispiel von Anwendungen, die unter Verwendung der vorliegenden
Erfindung abgebildet oder gestaltet sind, das die Größen der
erfundenen Wandlerverfahren erbt.
-
Einige
Bezugsziffern in 1 bis 3 sind ähnlichen
Elementen in allen Figuren zugeordnet. Ausführungsformen der Erfindung
werden nachfolgend unter Bezugnahme auf die 1 bis 3 erörtert. Fachleute
werden jedoch leicht erkennen, dass die ausführliche Beschreibung, die hierin
gegeben ist, unter Bezugnahme auf diese Figuren aus Erläuterungszwecken
gegeben ist, da die Erfindung sich über diese begrenzten Ausführungsformen
hinaus erstreckt.
-
1 zeigt
ein Beispiel eines Allzweckcomputers 101, der Spezialzwecksysteme
steuert, wie bspw. eine tragbare Anzeige 103, einen Fernseher 105,
eine Decoder- bzw. ein Aufsetzgerät (Set-Top-Box) und ein Heimsicherheitssystem 109,
basierend auf der vorliegenden Erfindung. Der Computer 101 kann
mit dem Internet 111 verbunden sein. Es sei bemerkt, dass
ein Spezialzwecksystem ein oder mehrere Steuergeräte (Controller)
aufweisen kann.
-
Die
vorliegende Erfindung wird durch die Gestaltung und Implementierung
eines Wandlers zum Transformieren einer geräteunabhängigen Auszeichnungssprache
(markup language) zu einer geräteunabhängigen Auszeichnungssprache
erläutert,
bspw. unter Verwendung von HTML. Dieses Auszeichnungssprachenbeispiel
ist vorgesehen, um die vorliegende Erfindung zu verdeutlichen und
ist nur beispielhaft bei der Verwendung der Erfindung.
-
Ein
Umwandeln einer Allzweckauszeichnungsausgabe, wie bspw. HTML, zu
einer geräteabhängigen Ausgabe
hat einen weiten Bereich von Anwendungen. Die geräteabhängigen Ausgaben
können
für ein
interaktives Fernsehen, ein Drucken von Dokumenten von dem Web (www)
und für
ein Lesen von Dokumenten auf einem PDA (Personal Digital Assistant:
persönlicher
digitaler Assistent) vorgesehen sein. Die Wandler in der vorliegenden
Erfindung können
sich die Leistung einer geräteunabhängigen Auszeichnungssprache
zunutze machen, um sich den Bedürfnissen
einer spezifischen Ausgabe und von Interaktionsgeräten anzupassen.
Basierend auf den Wandlern kann eine gegebene Allzweckauszeichnungssprache
in eine Layoutsprache gewandelt werden, die einem spezifischen Ausgabegerät angepasst
ist.
-
Auszeichnung
bzw. markup ist definiert als irgendein Mittel, um eine Interpretation
eines Textes explizit bzw. ausdrücklich
zu machen. Auszeichnungssprache ist definiert als ein Satz von Auszeichnungskonventionen,
die zusammen zum Codieren von Texten verwendet werden. Eine Auszeichnungssprache
spezifiziert, welche Auszeichnung erlaubt ist, welche Auszeichnung
erforderlich ist, wie eine Auszeichnung von dem Text zu unterscheiden
ist und was die Auszeichnung bedeutet. Sprachen wie HTML spezifizieren
die ersten drei, während
die HTML-Dokumentation die Bedeutung der Auszeichnungen bereitstellt.
-
Auszeichnungssprachen
wurden anfänglich
verwendet, um Bemerkungen und andere Markierungen innerhalb eines
Textes vorzunehmen, der vorgesehen war, um einen Setzer oder Schreiber
zu instruieren, wie ein bestimmter Textteil anzulegen oder zu drucken
war. Siehe bspw. http://www.w3.org/MarkUp. Beispiele umfassen eine
wellige Unterstreichung, um eine Fettschrift anzuzeigen, spezielle
Systeme für
Passagen, die auszulassen oder in einem bestimmten Zeichensatz zu
drucken sind usw. Da die Formatierung und das Drucken von Texten
automatisiert wurden, wurde der Begriff ausgedehnt, um alle Arten
von speziellen Markup-Codes abzudecken, die in elektronischen Texten
eingesetzt sind, um ein Formatieren, Drucken oder ein anderes Verarbeiten
zu verwalten.
-
Obwohl
Auszeichnungssprachen als eine Art eines Strukturierens von Textdokumenten
ursprünglich vorgesehen
waren, haben sie sich dazu entwickelt, eine Art bereitzustellen,
um den Aufbau von umfangreichen interaktiven Multimediadokumenten
zu spezifizieren. Diese gegenwärtigen
Generationsauszeichnungssprachen strukturieren nicht nur das Erscheinungsbild
des Dokuments, sondern auch die Interaktivität des Dokuments. Die gegenwärtige Generation
bzw. Erzeugung von beliebten Auszeichnungssprachen, wie bspw. HTML und
VRML, ist ziemlich flexibel und leistungsstark, da diese universell,
systemunabhängig
und geräteunabhängig sind.
-
Aufgrund
ihrer Allgemeingültigkeit
und Geräte-
und Systemunabhängigkeit
stellen Auszeichnungssprachen die Leistung und Flexibilität bereit,
die erforderlich ist, um als die Standardvorgehensweise zum Beschreiben
von Dokumenten verwendet zu werden und ebenfalls als ein allgemeines
Format zum Austauschen von Dokumenten. Diese Leistungsfähigkeit
und Flexibilität
geht auf Kosten des Zuschneidens der Aus gabe für Spezialzwecksysteme. In anderen
Worten spezifizieren Auszeichnungssprachen nicht wie Layout- und/oder Anzeigesprachen,
wie bspw. PostScript, nicht genau, wie eine Seite anzuzeigen oder
zu drucken ist, ohne Verlust ihrer Flexibilität und Allgemeingültigkeit.
-
Obgleich
dieser Mangel einer vollständigen
Steuerung über
die Ausgabe wie ein Nachteil erscheinen mag, ist es in der Tat eine
Wohltat für
die gegenwärtige
Erzeugung für
weitverbreitet verwendete Auszeichnungssprachen, wie bspw. HTML
und VRML. Dies liegt daran, dass die Anzahl an möglichen Ausgabegeräte bzw.
-vorrichtungen (Anzeige und/oder Interaktion), die ein Dokument
verarbeiten, das in einer dieser Auszeichnungssprachen veröffentlicht
ist, im Zunehmen ist, bspw. Fernseher, PDAs und Telefone. Daher
ist es für bestimmte
Zwecke erwünscht,
ein gemeinsames Veröffentlichungsformat
zu haben, das automatisch zu einer geeigneten Anzeigesprache auf
der Ausgabe/Interaktionsvorrichtung umgewandelt wird. HTML und VRML entwickeln
sich als eines der beliebtesten Veröffentlichungsformate für Dokumente.
Es ist jedoch wichtig, Werkzeuge zu haben, um diese für verschiedene
Eingabe/Ausgabevorrichtungen zu wandeln.
-
Die
folgenden Beispiele zeigen eine Sprache, die den Prozess des Zuschneidens
eines Allzweck-HTML zu einem gerätespezifischen
HTML basierend auf Wandlern automatisieren können.
-
Der
Wandler ist gestaltet, um eine HTML-zu-HTML-Wandlung zu ermöglichen.
Es wird als eine Erweiterung einer bestehenden Programmiersprache
angesehen. Java wird in dem folgenden Beispiel verwendet.
-
Ein
Merkmal des Wandlers ist, dass dieser einem Programmierer ermöglicht,
Wandlungen von HTML zu einer gegebenen Zielsprache zu spezifizieren,
die auf SGML [\cite]-artiger Syntax basiert, unter Verwendung eines
Stils, der natürlich
mit HTML übereinstimmt.
Dies ermöglicht
dem Programmierer, diese Wandler bei einem sehr hohen Grad einer
Abstraktion zu programmieren, was ermöglicht, dass komplexe Wandlungen schnell
und mit maximaler Zuverlässigkeit
geschrieben werden.
-
Jeder
Wandler definiert eine Wandlungsfunktion, die eine eingehende (SGML-basierte)
Eingabesprache in eine Zielsprache abbildet. Jeder Wandler besteht
aus einem Satz an Wandlungsverfahren, die Übersetzungen sind, die auf
individuellen Etiketten (tags) der Eingabesprache definiert sind.
Die Eingabe für
ein Wandlerverfahren sind syntaktische und abgetastete Daten, die
dem Etikett entsprechen, auf dem das Verfahren definiert ist. Die
Ausgabe eines Wandlerverfahrens kann ein weiterer Satz von syntaktischen
und abgetasteten Daten der Zielsprache sein. Bei dieser Erfindung
bedeuten syntaktische Daten Daten, die eine Syntax umfassen, wie
bspw. Textdaten, oder eine Programmiersprache. Abgetastete Daten
bedeuten Daten, die abgetastet sind, wie bspw. Bitmap, Bilder, Audio-
oder Videosignale.
-
Als
ein Beispiel, um eine Übersetzung
von Zeichensätzen
(fonts) durchzuführen,
enthält
der Wandler die folgende Wandlermethode:
-
-
Der
Wandler ermöglicht
auch Helfermethoden, die als reguläre Java-Methoden definiert
sind, um enthalten zu sein, und newFace und kann translateSize sein,
die als Helfermethoden in dem Wandler definiert sind.
-
Der
vollständige
Wandler kann wie folgt aussehen:
-
-
Der
Compiler übersetzt
den Wandler in reine Java-Klassen, die dann in irgendeine Anwendung
integriert werden können.
Der folgende Abschnitt erläutert
verschiedene Merkmale des Wandlers.
-
Auszeichnungssprachenwandlung
-
Die
grundlegende Syntax einer Wandlung ist gestaltet, um einem Programmierer
zu ermöglichen,
Auszeichnungssprachenwandlungen natürlich auszudrücken. Um
bspw. die Zeichensätze
der eingehenden Auszeichnungssprache zu übersetzen, könnte die
folgende Wandlermethode verwendet werden.
-
-
Dieses
Beispiel erläutert
drei Merkmale. Zunächst
ist der Körper
der vorstehenden Methode im wesentlichen in der Auszeichnungssprachensyntax.
Außer
für den
Code innerhalb "{%...%}" ist der gesamte
andere Code direkt als das Ergebnis der Methode ausgeben. Der Code
innerhalb "{%...%}" wird evaluiert und
das Ergebnis dieser Evaluierung wird in die Ausgabe eingesetzt.
Zweitens wird eine vordefinierte konstante .content. bereitgestellt.
Diese steht für
den Gehalt zwischen dem Beginn und den Endmarkierungen des Etiketts, auf
dem die Methode definiert ist. Drittens ist es ermöglicht,
Helferfunktionen innerhalb des evaluierten Codes zu verwenden. Diese
Helferfunktionen können
innerhalb des Körpers
bzw. Hauptteils des Wandlers selbst definiert sein.
-
Da
.content. und </FONT> regulär verwendet
werden, ist die folgende Syntax erlaubt und ist dieselbe wie vorstehend:
-
-
Es
ist nicht erforderlich, dass alle Etiketten einen Gehalt haben.
Diese Etiketten sind als leere Etiketten bekannt. Das vorstehende
Beispiel unterscheidet sich im wesentlichen von dem folgenden, das
dazu vorgesehen ist, ein HR-Etikett zu wandeln, das als leer bekannt
ist. In dem folgenden werden der Gehalt und die Endmarkierungen
ignoriert.
-
-
Austrittsmechanismus für einen
direkten Zugriff auf die Syntax-Baumstruktur
-
Manchmal
ist es einfacher, den Syntax-Baum der Eingabe direkt zu manipulieren.
Das folgende Beispiel repräsentiert
die Syntax, die zeigt, wie dies getan werden kann.
-
-
Hierbei
ist das Argument in Klammern, alpha, an den Syntaxbaum gebunden.
Die Ausgabe dieser Methode ist der Wert, der durch den Code in "{%...%}" zurückgegeben
wird.
-
Manchmal
ist eine Übersetzung,
die auf einer einfachen Musteranpassung basiert, nicht ausreichend und
es ist erwünscht,
dass direkte Manipulationen an der Baumstruktur in der Musteranpassungsübersetzung einzubetten
sind. Das folgende Beispiel erläutert,
wie dies zu tun ist.
-
-
Imperative Merkmale vor
und nach der Bearbeitung
-
Diese
Merkmale werden in dem Zusammenhang verwendet, wo eine gewisse Art
einer Initialisierung für
die Übersetzung
durchgeführt
werden muss. Es ist ebenfalls nützlich,
wenn der Wandler tatsächlich
ein Analysator ist. Codeteile können
vor und nach der Übersetzung
eingeführt
werden. Für
die direkte Baummanipulationssyntax ist dieses Merkmal nicht erforderlich.
Das folgende Beispiel erläutert
die Verwendung.
-
-
Ähnlich für danach:
-
-
Es
ist möglich,
sowohl anfänglichen
als auch endgültigen
Code in derselben Wandlermethode zu haben.
-
Gegenwärtige Aktualisierungen
von Auszeichnungen
-
Eine
imperative Aktualisierung des Syntaxbaums wird unterstützt. Dies
ist nützlich,
wenn nur einige Attribute eines Knotens geändert werden müssen (destruktiv).
Die folgende Syntax erläutert
die Verwendung. Die spezielle Variable Conent wird verwendet, um
den Gehalt zwischen entsprechenden Anfangs- und Endetiketten anzuzeigen.
Der Vorteil dieses Merkmals besteht darin, dass es die Belastung
auf das Speicherverwaltungssystem verringert.
-
-
Austauschwerte
zwischen verschiedenen Wandlermethoden
-
Die
Wandlungen unterstützen,
was in der Attributgrammatiktheorie als geerbte Attribute bekannt
ist. Diese sind Werte, die von den Stämmen (parents) zu deren Ableitungen
(children) während
eines typischen Top-down-Durchgangs des Syntaxbaums nach unten gereicht
werden. Wir nutzen das Schlüsselwort
umschließen,
um geerbte Attribute zu bezeich nen, da es typischerweise in Wandlungen
von äußeren Niveauelementen
zu Aufzeichnungsinformationen verwendet wird, die durch verschachtelte
Knoten/Elemente bereitgestellt sind.
-
-
Bei
dem vorstehenden Beispiel kann auf eine Umschließungsvariable of durch alle
die Wandlermethoden zugegriffen werden, die auf Elementen aufgerufen
sind, die zwischen den Anfangs- und Endmarkierungen eines Rahmensatzes
(frameset) eingeschlossen sind. Diese Methoden können diese Variablen verwenden, um
auf Informationen über
ihren Syntaxkontex zuzugreifen. Außerdem gibt, wenn das Rahmensatzelement verschachtelt
ist, ein Zugreifen auf of den Wert zurück, der mit dem dichtesten
Umschließungsrahmensatzelement
verbunden ist.
-
Zusammensetzung
von Wandlern
-
Wandler
können
zusammengesetzt sein. Diese Zusammensetzung wird durch direkte (OO)
Vererbung erreicht. Dies ist ein wirksamer Weg des Kombinierens
der Wirkungen von unverwandten Wandlungen. Wenn jedoch der Ableitungswandler
eine Wandlung definieren möchte,
die sich von seinem Stamm unterscheidet, muss es eine Auflösung geben,
wie das Ergebnis endgültig
sein sollte. Es gibt zwei Optionen: entweder Kombinieren der Ergebnisse
irgendwie (Zusammensetzung) oder vollständiges Ignorieren der Wandlung
des Stamms (Aufheben). Es gibt drei Arten von Zusammensetzungen:
das Ergebnis der Ableitung wird durch Stamm verarbeitet (beforesuper),
Ergebnis des Stamms wird durch Ableitung verarbeitet (aftersuper)
oder beliebig (super direkt von innerhalb des Körpers der Methode der Ableitung
aufrufen). Diese drei sind wie folgt dargestellt:
-
-
Dies
bedeutet, dass diese Methode zuerst gerufen wird und das Ergebnis
dieser Methode als das Argument zu dem super gesendet werden wird.
Wenn die Methode nicht idempotent bezüglich des Etiketts ist (d.h.
sie gibt nicht ein Element mit demselben Etikett wie die Eingabe
zurück),
sollte ein Fehler zur Laufzeit angezeigt werden. Das Ergebnis dieser
Methode ist das Ergebnis, das durch das super zurückgegeben
wird.
-
-
Hierbei
ruft die Methode zunächst
super auf und bindet dann das Ergebnis des Werts, der durch das super
zu dem gegenwärtigen
Satz von Argumenten zurückgegeben
wird. Wenn das super nicht idempotent bezüglich des Etiketts ist, sollte
diese Methode einen Fehler zur Laufzeit anzeigen.
-
Standard
(default) ist aufzuheben. Wenn eine verschiedene Art einer Zusammensetzung
bevorzugt innerhalb des Körpers
der Wandlermethoden ist, kann super.translateFONT(...) verwendet
werden.
-
Analysatoren
-
Um
syntaktisch den Teil des Wandlers, der analysiert, von denjenigen,
die wandeln, zu unterscheiden, wird der Schlüsselwortanalysator anstelle
des Wortwandlers verwendet. Analysatoren können idempotente Wandler sein.
Analysatoren enthalten Umschließungsattribute
und anfänglichen
Javacode. Wandler können von
Analysatoren erben. Die Ergebnisse vom Erben von Analysatoren von
Wandlern sind undefiniert.
-
Der
Wandler kann als eine Erweiterung für Java implementiert sein.
Er subsumiert die Javasyntax. Der Javacode wird durch eine Quelle-zu-Quelle-Übersetzung
in Java übersetzt.
Der Javacode kann dann kompiliert werden und mit den Wandlerlaufzeitbibliotheken
verbunden werden, bevor dieser zur Ausführung kommen kann.
-
2 zeigt
ein Beispiel des Implementierungsmodells eines Wandlers. In dem
ersten Schritt wird der Wandler 200 in wandlerspezifische 204 und
nicht-wandlerspezifische 202 Abschnitte aufgespaltet. Wandlerspezifische
Abschnitte 204 umfassen Wandlermethoden, während nicht-wandlerspezifische
Abschnitte 202 die Helferfunktionen umfassen. Die nicht-wandlerspezifischen
Abschnitte werden unverändert
durch den Compiler durchgegeben. Die wandlerspezifischen Abschnitte
werden in Java übersetzt.
-
Die Übersetzung
von wandlerspezifischen Abschnitten umfasst eine Anzahl von Schritten.
Zunächst Umwandlungsmethodenerklärungen in
Java-Methoden. Die Laufzeitbibliotheken werden die geeignete Methode
aufrufen, wenn ein gegebenes Etikett getroffen wird. Als zweites Übersetzen
von auszeichnungssprachenbasierten Körpern in Code, der Syntaxbäume er stellt.
Der eingebettete Javacode in den Körpern ist in diesen Code eingesetzt.
-
Abschließend werden
die beiden Javaabschnitte verbunden und der sich ergebende Javacode 206 kann
kompiliert und mit der Laufzeitbibliothek 208 verbunden
werden, um einen ablauffähigen
Code 210 zu erhalten.
-
Die
Wandlerlaufzeitbibliothek besteht aus einem Auszeichnungssprachenparser
und einem Satz von Methoden, die aufgerufen werden, wenn spezifische
Etiketten getroffen werden. Die Standardaktion für diese Methoden besteht darin,
nichts zu tun, d.h. diese sind Identitätstransformationen. Ein kompiliertes
Wandlerprogramm hebt diese Methoden auf.
-
Ein
Beispiel der Syntax eines Wandlers ist wie folgt:
-
-
-
Die
vorstehende Wandlung kann eine Anzahl von Wandlermodulen aufweisen,
einschließlich
Transportwandlermodulen, Anzeigewandlermodulen, Nutzerschnittstellenwandlermodulen,
Abbildungswandlermodulen und Steuerwandlermodulen.
-
Transportwandlermodule
-
Transportwandlermodule
werden verwendet, um automatisch die Übertragungsformate und die
Semantik von digitalen Daten zu modifizieren. Diese werden vornehmlich
verwendet, um sicherzustellen, dass die Anwendung entsprechend den
Bedürfnissen
und Fähigkeiten
der Eingabe/Ausgabevorrichtungen zerlegt werden kann. Dies ist insbesondere
wichtig, um eine Skalierbarkeit der Anwendung bei verschiedenen
Plattformen sicherzustellen (bspw. dieselbe Anwendung läuft auf
einem Fernseher und einem Telefon).
-
Anzeigewandlermodule
-
Diese
werden verwendet, um die Anzeigeeigenschaften von Anwendungen zu
modifizieren, um mit den Anzeigefähigkeiten der Eingabe/Ausgabevorrichtungen übereinzustimmen.
Bei Verwendung von Anzeigewandlermodulen kann man sowohl syntaktische
als auch abgetastete Datentransformationen für die Anwendungsausgabe anwenden.
-
Erneutes Zeichensatzanpassen
(Font remapping):
-
Dies
wird zum Ändern
der Zeichensätze
verwendet, so dass diese für
eine Ausgabevorrichtung geeigneter sind.
-
Farbkorrektur (Color Correction):
-
Dies
wird verwendet, um die Farben zu korrigieren, so dass diese für eine Ausgabevorrichtung
geeigneter sind.
-
Vergrößerer (Magnifier):
-
Dies
wird zum Skalieren der Ausgabe der Anwendung verwendet, so dass
diese für
eine Ausgabevorrichtung geeigneter ist.
-
Flimmerverringerung (Flicker
reduction):
-
Dies
wird zum Verringern von Flimmergegenständen in verketteten Anzeigen
verwendet.
-
Bildverbesserung (Image
enhancement):
-
Dies
wird zum Verbessern der Bildqualität auf minderwertigen oder entfernten
Anzeigen verwendet.
-
Nutzerschnittstellenwandlermodule
-
Nutzerschnittstellen-
(UI User Interface) Wandlermodule werden verwendet, um die Nutzerschnittstelle
abzubilden, dass eine Anwendung zu einer Nutzerschnittstelle errichtet
wurde, die für
die Eingabe/Ausgabevorrichtung offen ist, die als die Interaktionsvorrichtung
verwendet wird.
-
PopUp UIs
-
Dieses
Modul umgibt eine Anwendung und stellt eine PopUp-basierte Nutzerschnittstelle
bereit. Dies ist nützlich,
um Bildschirmfläche
zu sparen und die Bedienungsfreundlichkeit zu erhöhen.
-
Tonrückkopplung (Audio feedback):
-
Dieses
Modul fügt
Tonrückkopplung
zu Nutzerschnittstellen hinzu.
-
Belebte UI (Animated UI):
-
Dieses
Modul fügt
eine Animation zu statischen Nutzerschnittstellen hinzu.
-
Kontext-empfindliche UI
(Context Sensitive UI):
-
Dieses
Modul ändert
die Nutzerschnittstelle derart, dass diese explizit die Daten repräsentiert,
die gegenwärtig
an gezeigt werden. Die Nutzerschnittstelle ist von den Daten abgeleitet,
für die
diese eine Schnittstelle ist.
-
AutoScroll:
-
Dieses
Modul fügt
Freihandscroll-Fähigkeiten
den Anwendungen hinzu.
-
Abbildungswandlermodule
-
Oftmals
sind Anwendungen derart gestaltet, dass diese ohne eine größere erneute
Abbildung ihrer Ein- und Ausgänge
nicht auf den meisten Plattformen verwendet werden können. Beispielsweise
sind HTML-Seiten mit Rahmen nicht einfach auf Anzeigen mit geringer
Auflösung
zu betrachten. Der Abbildungswandler wird verwendet, um die Ein-
und Ausgänge
der Anwendungen in eine Form erneut abzubilden, die für die Ein/Ausgabevorrichtungen
geeignet ist.
-
Rahmen (Frames):
-
Dieses
Modul wird zum erneuten Abbilden von HTML-Seiten verwendet, die
Rahmen enthalten, so dass diese von der HTML-Seite entfernt werden,
oder
alle die Rahmen in eine nicht-Rahmen-HTML-Seite verbunden
werden, oder
alle die Rahmen außer dem Hauptrahmen in der
Form von PopUp-Rahmen verborgen sind.
-
Tabellen (Tables):
-
Dieses
Modul wird zum erneuten Abbilden von Tabellen verwendet, so dass
diese für
Ein/Ausgabevorrichtungen zugeschnitten sind.
-
Horizontales Scroll Free
(Horizontal Scroll Free):
-
Dieses
Modul bildet die Daten erneut ab, so dass diese kein horizontales
Scrollen erfordern.
-
Navigationsabbildungen
(Navigation Maps):
-
Jedem
HTML-Dokument gegeben, dieses Modell wird zum automatischen Erzeugen
einer Standortkarte beliebiger Tiefe verwendet.
-
AutoSurf:
-
Einer
Website gegeben, dieser Wandler produziert eine Playback- bzw. Wiedergabeversion
dieser Webseite. Dieses verwendet entweder eine Breite zuerst oder
eine Tiefe zuerst oder eine Kombination der beiden oder einen zufälligen Gang,
um die Spielreihenfolge zu bestimmen. Es ist insbesondere nützlich,
wenn es für
kundenspezifische Neuigkeitsanwendungen eingesetzt wird.
-
Steuerwandlermodule
-
Wie
der Name nahelegt, ermöglichen
Steuerwandlermodule dem Computer, Konsumentenanwendungen zu steuern
und Daten von diesen zu sammeln. Eine Wandlung ist erforderlich,
da es mehrere Steuerprotokolle und Medienzugriffsprotokolle für Konsumentenanwendungen
gibt.
-
Leistung (Power):
-
Dies
ist ein Modul, um den Leistungsverbrauch der Vorrichtungen zu steuern.
-
Videorekordersteuerung
(VCR control):
-
Dies
ist ein Modul, um einen Videokassettenrekorder zu steuern.
-
Sicherheit (Security):
-
Dies
ist ein Modul, um auf Sicherheitssysteme zuzugreifen und diese zu
modifizieren.
-
In
den vorstehenden Modulen können
die Transportwandlermodule als Ausgabewandlermodule betrachtet werden,
die das Modul sein können,
das mit der Spezialzweckvorrichtung verbunden ist.
-
Ein
weiterer Typ eines Wandlermoduls ist das Decodierungswandlermodul.
Es ist zum Decodieren der gewandelten Ausgaben zur Verwendung durch
die Spezialzweckvorrichtung vorgesehen. Beispielsweise transformiert
das Decodierungswandlermodul syntaktische und abgetastete Daten
in Bits mit Farbe, die auf einem Fernsehbildschirm anzuzeigen sind.
Somit können
die Ausgaben des Decodierungswandlers lediglich abgetastete Daten
sein.
-
Die
vorliegende Erfindung beschreibt einen Wandler mit zumindest zwei
Wandlermodulen. Jedes Modul transformiert seine empfangenen syntaktischen
Daten und Abtastdaten. In einer Ausführungsform umfasst der Wandler
mehr als zwei Modu le und dies sind Module, die lediglich die syntaktischen
oder die abgetasteten Daten modifizieren, aber nicht beide.
-
In
einer Ausführungsform
gibt es eine Anzahl an Modulen, die sequentiell nacheinander verbunden sind.
Jedes Modul verfeinert nacheinander seine empfangenen Daten, um
besser einsetzbar zu sein, um ein Spezialzwecksystem zu steuern.
-
Die
Module in der vorliegenden Erfindung können wiederverwendet werden.
Beispielsweise kann eine Reihe von Modulen verwendet werden, um
Bilder auf einem Farbfernseher zu steuern, und eine weitere Serie für einen
einfarbigen Fernseher. Alle Module in den beiden Reihen können identisch
sein, außer
einem, dass das eine ist, das die Farbe für jeden Bildpunkt bestimmt.
Nachdem man die erste Reihe implementiert hat, ist es einfach, die
zweite zu implementieren.
-
Diese
Spezifikation beschreibt ein Wandlermodul, das sowohl syntaktische
Daten als auch abgetastete Daten modifiziert. In einer Ausführungsform
wandelt ein Minimodul syntaktische Daten und ein weiteres Minimodul
wandelt abgetastete Daten. Beide Minimodule zusammen bilden ein
Wandlermodul in der vorliegenden Erfindung.
-
Die
vorliegende Erfindung ist ebenfalls in umgekehrter Form anwendbar.
In anderen Worten kann die vorliegende Erfindung verwendet werden,
um syntaktische und abgetastete Daten von einem Spezialzwecksystem
zu wandeln, um ein Allzwecksystem zu steuern. Es können bspw.
Abschaltzeichen von einem Fernseher gewandelt und als HTML auf einem
Computer angezeigt werden.
-
Wie
vorstehend erörtert
ist, können
Anwendungen, die gestaltet oder unter Verwendung der erfundenen
Wandlungsmethoden abgebildet werden, die Größen der Wandlung erben, wie
bspw. die Vorteile der Allgemeingültigkeit, Skalierbarkeit, Portabilität und Zusammensetzbarkeit. 3 zeigt
solch ein Beispiel, bei dem ein Internetbrowser 120, der
unter Verwendung der vorliegenden Erfindung gestaltet oder abgebildet
ist, vollständig
auf einem Personal Computer 122 laufen kann, teilweise
auf einem Personal Computer und teilweise auf einer Set-Top-Box 124 oder
vollständig
auf einer Set-Top-Box 124.
-
Andere
Ausführungsformen
der Erfindung werden Fachleuten bei Betrachtung dieser Spezifikation oder
bei Ausführung
der Erfindung, die hierin offenbart ist, offensichtlich werden.
Es ist beabsichtigt, dass die Spezifikation und Beispiele lediglich
beispielhaft angesehen werden, wobei der wahre Bereich der Erfindung durch
die folgenden Ansprüche
angezeigt ist.