Operno - Der Interpreter

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

ts-soft hat geschrieben:Wenn Du Deinen Interpreter mal kommerzialisieren möchtest, mußte Dir
wohl nen neuen Namen ausdenken, weil Operno hat schon jemand ausge-
dacht und wohl auch geschützt :wink:
Operno

Gruß
Thomas
Nope, wenn du dir das mal genauer anschaust wirst du das hier finden:
The International Classification of Goods and Services for the Purposes of the Registration of Marks (Nice Classification) and the list of goods and services classified according thereto:
Pharmaceutical preparations and substances
Also, solange du nichts das mit der Pharmaindustrie in Verbindung steht
so nennst geht das schon in Ordnung.

EDIT: Ups, zu spät... :mrgreen:
Zuletzt geändert von milan1612 am 30.08.2008 17:54, insgesamt 1-mal geändert.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Suppppiii

EDIT:
:bounce:
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Na gut, für Musik ist es wohl auch ein Begriff: Wiener Operno.
Also kein PlaySound in Deinen Interpreter einbauen :mrgreen:

Ne, ich fand den Satz, das Du Dir das Wort ausgedacht hast interessant :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Das mit "Wiener Operno" habe ich auch schon mal gefunden.

Ich selbst finde den Namen interessant: Als ich 10 war fiel mir der Name
irgendwie ein. Echt Mystisch. :lol:.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Neue Version:

Download (noch kleiner als vorher :? :D)
http://www.file-upload.net/download-107 ... o.zip.html

-Zwei neue Befehle:
- variable,vector operation
- array,define block

-Neues Bild.
-Rechtschreibfehler beseitigt.

Wenn ich euch mit meiner Operno-Syntax überrolle, dann sagt/schreibt mir
bescheit.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Habe wieder eine neue Version. Diesmal habe ich aber auch zwei wichtige
Kapitel in das deutsche Tutorial eingebaut.
Anbei habe ich noch die 'Term' Funktion hinzugefügt. Die Beispiele
werden euch diese Funktion (hoffentlich) erklären.

Der Downloadlink auf der ersten Seite ist der neueste.
Oder auch hier:
http://www.file-upload.net/download-107 ... o.zip.html

Wäre wiederum für Kommentare,Bugs und Vorschläge dankbar.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Seas

Zuerst mal: Repekt. Da ich auch gerade an einem Interpreter arbeite weis ich das so was ein Haufen Arbeit ist. Das ganze macht auf mich keinen schlechten Eindruck, toll währe es noch wenn du Schleifen einbauen würdest, ansonst schon ganz gut.

Ein paar Vorschläge habe ich noch:
An Prozeduren die einen übergebenen String nur analysieren,weitergeben usw. ABER nicht verändern solltest du nur Pointer übergeben, was speziell bei vielen langen Zeichenketten erheblich schneller ist.

z.B.: die Funktion AddCommand()

Code: Alles auswählen

Procedure.l AddCommand(Command.s)
  Protected *Command.String, *Item.List_Item
  
  *Item = List_ItemL(*CommandList, @*Command)
  *Command\S = Command
  ProcedureReturn *Item
EndProcedure
Du übergibst Command als String, und übergiebst den Pointer an *Command und List_ItemL(). Sinnvoller währe (meiner Meinung nach):

Code: Alles auswählen

Procedure.l AddCommand(*Command.String)
  Protected *Item.List_Item
  
  *Item = List_ItemL(*CommandList, *Command)
  ProcedureReturn *Item
EndProcedure
So was hab ich an mehreren Stellen deines Codes gesehen. Vielleicht kannst du so ja die Performance noch steigern.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

@cxAlex
Leider verstehst du mein Template nicht. (Könnte es mal erklären :D).

List_ItemL gibt einen Zeiger auf ein neu erstelltes Item/Element zurück.
Das Element bestitzt folgende Struktur:

Code: Alles auswählen

Structure List_Item
  *Next.List_Item
  *Previous.List_Item
  *Memory
EndStructure
Um auf "Memory" zuzugreifen müsste ich folgendes machen:

Code: Alles auswählen

*Command.String
*Item.List_Item

*Item=List_ItemL(*List)
*Command=*Item\Mem
*Command\S="Blabla"
Doch um sich eine Zeile zu erspaaren, kann man als zweiten Parameter
eine Addresse auf den Zeiger angeben, der die Addresse von "Memory"
beinhalten muss:

Code: Alles auswählen

*Command.String
*Item.List_Item

*Item=List_ItemL(*List,@*Command)
*Command\S="Blabla"
Mein Template ist also nicht sehr primitiv. Ich habe schon dafür gesorgt,
dass alles so schnell wie möglich läuft.



Und noch was: Schleifen sind möglich. Schau dir die Beispiele an. :wink:



Zu deiner Interresse an Interpreter:
Mir macht es spaß Interpreter zu programmieren. Man hat die Möglichkeit
seine eigene Sprache auf eine einfache (oder auch schwere :D) Weise
zu gestalten. Ich bin gerade an einem Prototyp eines Token-Interpreters.
Die Syntax sieht einfach prächtig aus. EDIT: nun ist es so weit
Zuletzt geändert von Josef Sniatecki am 30.09.2008 21:56, insgesamt 1-mal geändert.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Ah...sry.

Da hatte ich ne Denkblockade, i hab die funktion anders interpretiert.

Liegt dran das mein Interpreter intern anders arbeitet (klar :lol: sonst wärs ja derselbe) und da hab ich das wohl auf meinen umgelegt.

Ich wollte nicht sagen das deine Version primitiv ist, sollte nur ein Vorschlag sein. Das mit den Scheifen hab ich nich gesehen, hab das Repeat-bsp. jetzt gefunden. Muss sagen, super arbeit.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten