Eine Einführung in RPC ( Radical Processing Core )
Einführung
Dieser Artikel wird über meine aktuelle Programmiersprache namens RPC sprechen. RPC war etwas, mit dem die Leute verwechselt wurden. Remote Procedure CallIch kann Ihnen versichern, dass RPC in diesem Fall kein Remote Procedure Call ist. Stattdessen ist RPC eine Programmiersprache namens Radical Processing Core. Diese Sprache hat ihren Namen davon, wie radikal und anders sie entworfen wurde. Dieser Artikel geht auch tief in die Tiefe über Mathematik, Front-End-Engineering, warum, wie und das wichtigste was.
Verstehen warum
Für viele Entwickler ist es ein Traum, ihre eigene Programmiersprache zum Spaß zu entwickeln, aber nur wenige erfüllen diese Mission tatsächlich. Der Grund dafür ist einfach, dass das Erstellen einer Programmiersprache schwierig ist. Das Design, das hinter den komplexesten Teilen einer Sprache stehen kann, macht es wirklich schwierig. Vor allem, wenn Sie vorhaben, es zu kompilieren. Meine Mission war eine andere, ich wollte keine Sprache zum Spaß bauen, ich wollte einfach nur eine Sprache machen, die komplexe Dinge einfach und einfache Dinge schwierig macht, wenn das Sinn macht. RPC war nur meine eigene Sprache, ich habe mich von keiner Sprache inspirieren lassen, ich habe keine Designideen verwendet, mich nicht von Personen, Dingen, Gegenständen, Sprachen, Konzepten usw. inspirieren lassen. Dieses Design war ausschließlich meine eigene. Der Grund, warum RPC so war, wie es war und wie sein Design herauskam, war genau, dass es nicht dazu gedacht war, eine bestimmte Gruppe von Menschen anzusprechen, nur mich. Der Grund dafür ist, dass ich, wenn ich mich von einer anderen Sprache inspirieren lassen sollte, an diesem Punkt fest davon überzeugt bin, dass es sich nur um eine Erweiterung der aktuellen Sprache handelt, wie C # von Java. Bevor ich auf die Antwort eingehe, wollen wir eine allgemeine Grundlage der Sprache erstellen.
- Das Konzept: Das Konzept von RPC bestand darin, einfache Anwendungen schwer und schwierige Anwendungen einfach zu machen. Wenn Sie also etwas auf dem Bildschirm ausgeben wollten, mussten Sie Ihre eigenen Streams für die Eingabe und Ausgabe mit RPC erstellen. Das bedeutete auch, dass Anwendungen wie Kernel-Treiber, Loader, Speicherleser und -schreiber, Mapper und sogar etwas so Komplexes wie UNIX-SOCKETS einfacher zu implementieren als etwas auszugeben wären.
- Das Design: Jede Sprache ist auf ihre Art besonders, aber RPC war anders, es war MEHR als nur speziell, es war MEHR als nur komplex. RPC wurde entwickelt, um Ihren Kopf so sehr zu verarschen, dass es Sie tagelang in eine mentale Spirale versetzen und Sie verwirren würde. Obwohl Interpreterfehler leicht zu verstehen sind, ist RPC selbst es nicht. Es hätte eine mathematischere Implementierung, bei der Sie die Symbole tan, cos, e usw. verwenden würden, nur um etwas so Einfaches wie wieder einen Ausgabestrom zu machen. Diese Sprache sollte Sie so sehr verwirren, dass Sie darüber nachdenken sollten, warum Sie sich für die Karriere eines Programmierers entschieden haben. RPC war eine Sprache, die roh gebaut und mit X86 Assembler kompiliert werden sollte, aber das Problem lag beim Entwickler (ich selbst). Ich kenne nicht genug oder nicht einmal annähernd genug Assembler, insbesondere X86-Assembler, um zu verstehen, wie man meinen eigenen Compiler baut. Tatsächlich war der einzige Compiler, den ich je gebaut habe, in C für die Programmiersprache BRANF, was angesichts der Größe der Sprache super einfach war. Das bedeutete also, dass RPC offiziell als interpretierte Programmiersprache beginnen würde. RPC würde auch Go als Backend für die Programmiersprache verwenden, für die Aufzeichnung kann ja go als Backend verwendet werden. Das Design der Sprache wird später in diesem Artikel gezeigt. Aber denken Sie daran, dass die Sprache entwickelt wurde, um Sie zu verwirren. RPC würde auch Go als Backend für die Programmiersprache verwenden, für die Aufzeichnung kann ja go als Backend verwendet werden. Das Design der Sprache wird später in diesem Artikel gezeigt. Aber denken Sie daran, dass die Sprache entwickelt wurde, um Sie zu verwirren. RPC würde auch Go als Backend für die Programmiersprache verwenden, für die Aufzeichnung kann ja go als Backend verwendet werden. Das Design der Sprache wird später in diesem Artikel gezeigt. Aber denken Sie daran, dass die Sprache entwickelt wurde, um Sie zu verwirren.
- Teilmengen: Teilmengen von RPC wären RPCT, RPCJ, RPCX, RPCG, RPCF, die für RPC Templating, JSON, XML, GO, FORTRAN stehen. Dies bedeutet, dass Sie RPC in aktivem HTML-Code, JSON-Code, XML-Code, Go-Code und sogar FORTRAN-Code schreiben und die Back-End-Engine von RPC anweisen können, den RPC-Code in den JSON-, XML- oder HTML-Dateien usw. zu analysieren und zu lokalisieren das würde verwendet werden.
- Supersets: C hat ein Superset namens C++ und C++ hat ein Superset namens Carbon. RPC würde auf ähnliche Weise funktionieren, RPC hätte RPC++, was ein zufriedenstellenderer, aber mathematischer Teil der Programmiersprache wäre. Dies bedeutete, dass .RPC++-Dateien Klassen und Module usw. verwenden konnten, da normales RPC keine Module und Klassen verwendete. Bäume fungierten als Klassen und Knoten fungierten als Module. Also statt
class classname {}du hastRPC_NODE somenodename(){[]}
Warum interpretiert?
Das ursprüngliche Design von RPC sollte wie oben erwähnt in X86 Assembler kompiliert und geschrieben werden, aber hier ist der Grund.
- Keine Masterkenntnisse in X86-Assembler oder überhaupt irgendeiner Form von Assembler
- Kein Meister oder komplexes Verständnis für das Erstellen von Compilern aus Sprachen wie Assembler
- Dolmetscher sind einfacher herzustellen und aufzubauen.
Was
Mit jeder Programmiersprache kommen die zwei Hauptfragen und das ist what and why. Nun, wir haben bereits warum getan, also was genau wird aus RPC werden. RPC wird eine Sprache werden, die einige Probleme in modernen Programmen löst.
- Mathematik: Aus irgendeinem Grund haben moderne Programmiersprachen, die nicht von Organisationen wie Google oder Amazon oder Apple entwickelt wurden, eine sehr, sehr schlechte Implementierung von Mathematik. Da RPC eine Sprache ist, die robuster und fortschrittlicher, aber in einigen Fällen weniger schwierig sein sollte, wird die mathematische Implementierung in RPC viel intensiver sein. Die Standard-COS, TAN, URAND, RAND usw. werden weiterhin verwendet, aber es wird auch mehr benutzerdefinierte Implementierungen geben.
- Compilerfehler und/oder Vorschlagssysteme: Die meisten Sprachen wie Go haben ein seltsames Fehlersystem, obwohl das Paniksystem gut aufgebaut ist, fehlen ihnen viele Beschreibungen in ihren Fehlern, besonders je komplexer Sie werden. Sprachen wie Python sagen, dass Sie zu viel eingerückt haben, ohne Ihnen die vorgeschlagene Spalte zu sagen, und sie geben Ihnen nicht einmal die direkte Linie, die manchmal oben steht. RPC wird sich also wie seine Templating-Engine verhalten. Wenn Sie beispielsweise in Zeile 15 Ihres Codes einen Fehler machen, werden 5 Zeilen vor und 5 Zeilen nach diesem Code eingefügt und ausgegeben. Der Grund dafür besteht darin, Ihnen einen allgemeinen Ausnahmebereich zu geben oder den Ort, an dem der Fehler aufgetreten ist, um sicherzustellen, dass Sie nicht verloren gehen, falls der Interpreter einen Fehler auslöst. Wenn es sich bei dem Compiler-Fehler um so etwas wie einen Stream oder etwas Komplexes wie bitweise Operatoren handelt, erhalten Sie höchstwahrscheinlich einen mathematischen Fehler mit einem tiefen Verständnis dafür, was genau schief gelaufen ist, mit einem von Zeit zu Zeit vorgeschlagenen Ersatz. Angenommen, Sie erstellen ein 7-zeiliges Programm und es hat einen Syntaxfehler in Zeile 4, Spalte 2 mit einem seltsamen Symbol. RPC gibt solche Anweisungen aus.
- Benutzererfahrung: Während RPC nicht darauf abzielt, den Benutzer zufrieden zu stellen und die Arbeitsbelastung zu erschweren, wird es die Benutzererfahrung in Bezug auf Fehler, Schreiben, Notizen, Importe, Dateien usw. etwas erleichtern. RPC hat eine große Auswahl an Dateien, die sind die folgenden
Nun, das sind viele Dateinamen, warum? Nun, RPC hat viele Möglichkeiten, Daten zu deklarieren und zu unterteilen. Daten von RPC sollten direkt mit .rpc referenziert werden, wenn sie nicht xml, json, html, template, fortran, go, c++, C, Lua, Trees, Tree nodes, constants etc. enthalten. Alle Dateien haben eine unterschiedliche Bedeutung
- RPC : Rohe RPC-Quellcodedatei
- RPCT: Raw-RPC-Templating-Quellcodedatei
- RPCX: Rohe RPC-XML-Template-Quellcodedatei
- RPCJ: Unformatierte RPC-JSON-Template-Quellcodedatei
- RPCG: Rohe RPC GO-Template-Quellcodedatei
- RPCF: Unformatierte RPC Fortran-Template-Quellcodedatei
- RPCH++: Rohe RPC-Quellcodedatei, definiert für Bäume, Knoten, Namensräume usw
- RPC++: Rohe RPC-Quellcodedatei für die Obermenge von RPC++, ähnlich wie R++
- RPCCLCCPQ: Radical Processing Core C, Lua, C++, PQ. Diese Datei war super umständlich, also lass es mich erklären. Dieser Dateityp wird nicht als Hauptdatei ausgeführt und kann nicht als Hauptdatei ausgeführt werden, wird jedoch als Hauptdatei ausgeführt
biVersion von RPC. Die Hauptdateien von RPC oder bestimmte Dateien können nicht nur Bäume und Knoten mit Hauptfunktionen, Namensräumen, Importen, Modulen usw. enthalten, da diese Sprache nicht FORTRAN ist, sondern es ermöglicht, dass eine separate Datei alles auf einmal enthält. Mit dieser Datei können Sie Lua-, C++-, C- und RPC-Code lokal laden, indem Sie einzelne Funktionen aufrufen, und Sie können auch Bäume, Knoten, Module, Namespaces und andere Formen von RPC-Code in einer Datei verwenden. Diese Datei ist ein Konzeptentwurf und wird erst in späteren Versionen des Programms implementiert, da diese Datei extrem komplex sein muss und wie gut die Sprache entworfen werden muss, um sie zu implementieren und zu akzeptieren. Ein Beispiel unten ist ein Beispiel für diese Supermenge einer Datei., - Last but not least geht es um die Leichtigkeit: Die meisten Programmiersprachen machen die kompliziertesten Aufgaben schwer und die einfachsten Aufgaben sehr einfach. Sie sagen wahrscheinlich „Natürlich haxxer, wie Sprachen aufgebaut sind“, nun, Sie sehen, ich bin nicht so gebaut XD. Das bedeutet, dass statt der Priorisierung des Front-Ends und der Priorisierung der einfachen Dinge in der Sprache RPC die schwierigeren und komplizierteren Dinge priorisiert werden. Dazu gehören Dinge wie das Kodieren von Strings, das Dekodieren von Strings usw. usw. RPC möchte, dass Sie Hardcore-Anwendungen wie Exploits, grafische Anwendungen, serverseitige Anwendungen und sogar angepasste Netzwerke erstellen, die nichts auf dem Bildschirm ausgeben. Dies ist auch der Grund, warum RPC neuen Programmierern nicht empfohlen wird oder empfohlen wird, weil die Struktur von RPC so wahnsinnig komplex ist und es beim Schreiben einfacher Anwendungen wirklich kompliziert wird. Die Faustregel in dieser Sprache lautet, dass Ihre Bewerbung ein komplexes Thema haben MUSS. Wenn es nicht gut ist, werden Sie mehr Arbeit verursachen, was nicht ganz das Ziel, aber auch nicht das Ziel der Sprache LOL ist. Ich mag diese Sprache, weil ich nicht das Gefühl habe, dass es da draußen eine Sprache gibt, die es so einfach macht, komplizierte Anträge zu stellen, und so kompliziert, einfache Anträge zu stellen. Wenn es nicht gut ist, werden Sie mehr Arbeit verursachen, was nicht ganz das Ziel, aber auch nicht das Ziel der Sprache LOL ist. Ich mag diese Sprache, weil ich nicht das Gefühl habe, dass es da draußen eine Sprache gibt, die es so einfach macht, komplizierte Anträge zu stellen, und so kompliziert, einfache Anträge zu stellen. Wenn es nicht gut ist, werden Sie mehr Arbeit verursachen, was nicht ganz das Ziel, aber auch nicht das Ziel der Sprache LOL ist. Ich mag diese Sprache, weil ich nicht das Gefühl habe, dass es da draußen eine Sprache gibt, die es so einfach macht, komplizierte Anträge zu stellen, und so kompliziert, einfache Anträge zu stellen.
Ich bekomme diese Frage oft, einige Leute werden mir immer sagen, dass es keinen Sinn macht, Zeit damit zu verschwenden, eine Anwendung zu erstellen, die bereits existiert. Da liegst du falsch mein Freund! Es ist keine Zeitverschwendung, nur weil
- 1: Es wird verwendet
- 2: Es wird meine Fähigkeiten verbessern
- 3: Es wird mehr erforscht
- 4: Fügt mehr hinzu, um darüber zu schreiben und zu sprechen
- 5: Erkundet neue Felder
Verstehen, wie RPC funktioniert
Nachdem wir nun mit der Einführung und den Hintergrundinformationen fertig sind, können wir uns mit der genauen Funktionsweise von RPC, seiner Syntax, seinem Fehlersystem usw. befassen. Denken Sie jetzt daran, dass RPCT der einzige realistische Beweis für die Verwendung von RPC ist, wie auch immer sich die Sprache in der Entwicklung befindet Dieser Artikel wird gerade geschrieben und soll bald im Jahr 2023 veröffentlicht werden. Nachfolgend finden Sie allgemeine Themen und wie RPC damit umgeht.
- Datentypen: Datentypen sind sehr spezifisch aufgebaut und können vollständige Namen haben. Die meisten Sprachen lassen Sie
int, bool, string, int32, uint32, uint16, int16 etc....gut tippen. RPC lässt Sie alles eingeben, um genau zu spezifizieren, was es tut. Wenn Sie beispielsweise eine Variable mit dem Datentyp Integer haben möchten, müssen Sie angeben,Variable Integer varname = 1;ob Sie einen booleschen Wert möchten, den Sie eingeben würden,Variable Boolean varname = truewenn Sie Ganzzahlen ohne Vorzeichen möchten,Variable Unsigned_Integer32 Varname = 8913671371276782367862347823423478usw. - Methoden und Methodenargumente: Methoden sind etwas seltsam definiert und verwenden eine Reihe von Pfeilen und Symbolen, um ihre Datentypen, Argumente usw. zu definieren. Wenn Sie eine Funktion oder Methode in RPC deklarieren möchten, hat RPC eine Regel namens TFAL (Type First Argument Last ), was bedeutet, dass Sie RPC den Datentyp mitteilen müssen, bevor Sie die Argumentliste starten. Angenommen, Sie möchten zum Beispiel, dass eine Funktion 2 Argumente vom Typ String enthält, würden Sie eingeben,
String : String => FunctionName(x,y) {}sobald Sie die Datentypen deklariert haben, die Sie verwenden müssen,:um sie zu trennen und=>RPC mitzuteilen, zu welcher Funktion diese Datentypen gehören, danach definieren Sie die Funktionsname zusammen mit den Variablen. Also wenn du hättestString : Integer => FunctionName(x,y), X wäre vom Typ String und Y wäre vom Typ Integer. Dasselbe gilt für Rückgabetypen. Das => sagt RPC, dass Sie Variablen initiieren möchten, das -> Symbol sagt RPC, dass Sie Variablen zurückgeben möchten. Wenn Sie also eine Funktion wollten, die 3 Argumente akzeptiert und denselben Typ zurückgibt, würden Sie die Funktion so schreiben.
Integer : Integer : Integer => Function(x, y, z) -> Integer32 {
Variable Integer32 Varname = x+y+z
<-Varname
}
Variable Type nameso ein, wenn Sie eine Variable vom Typ String haben möchten, geben Sie ein Variable String varname = "data". Globale Variablen sind auch eine andere Sache, die Sie mit dem Schlüsselwort erstellen können Global. Globals müssen mit einem definiert werden. :Wenn Sie also beispielsweise eine globale Variable definieren wollten, würden Sie Global->Varname : Integer32 = "23191289429034324236746723"Pretty simple right?Eine Idee aufbauen
Wenn sich eine Programmiersprache entwickelt, wird sie sich von ihrer ursprünglichen Idee ändern. RPC Ich weiß, wenn ich mit der Entwicklung beginne, wird es viel verwirrender und viel komplizierter, was bedeutet, dass sich das Design ändern wird. Rundherum soll sich an der Idee nicht viel ändern, aber sie wird sich noch ändern. Während wir mit dem Aufbau dieser Sprache fortfahren, plane ich, eine Sprache zu erstellen, die etwas verrückter ist, aber für Hacker. Es gibt bereits eine Sprache für Hacker, aber ich spreche von mehr Codierung und Strukturen, einfacheren Wegen, bestimmte Aufgaben zu erledigen, die nicht einfacher sind. Schließlich ist RPC die Sprache, die jede einfache Anwendung schwierig und jede schwierige Anwendung einfach macht. Diese Idee wird auch in Entwicklungsphasen gleich bleiben, Bildwiedergabe, Bildinjektion, Datenmanipulation, algorithmische Implementierung usw. werden viel einfacher sein, und das ist die allgemeine Idee. Wir möchten jedoch sicherstellen, dass dieses System so weit wie möglich erhalten und so einfach wie möglich gehalten wird. Nun, die Sprache, die wir bereits besprochen haben, ist superradikal und macht es wirklich verrückt, Programme zu erstellen, die, wie wir alle wissen, das Gegenteil von dem sind, was Sprachen sein sollten. Mit diesem Wendepunkt möchte ich jedoch auch das Fehlersystem radikalisieren, was bedeutet, dass es Sie anschreien und Ihnen komplexe Fehler, aber leicht verständliche Fehler geben wird. Sie kennen die Sprache, mit der Sie Bedingungen, Schleifen, Funktionen usw. beenden Mit diesem Wendepunkt möchte ich jedoch auch das Fehlersystem radikalisieren, was bedeutet, dass es Sie anschreien und Ihnen komplexe Fehler, aber leicht verständliche Fehler geben wird. Sie kennen die Sprache, mit der Sie Bedingungen, Schleifen, Funktionen usw. beenden Mit diesem Wendepunkt möchte ich jedoch auch das Fehlersystem radikalisieren, was bedeutet, dass es Sie anschreien und Ihnen komplexe Fehler, aber leicht verständliche Fehler geben wird. Sie kennen die Sprache, mit der Sie Bedingungen, Schleifen, Funktionen usw. beendenPLEASE ENDund wird dir sagen, dass du unhöflich bist, wenn du es nicht tust? Nun, unsere Sprache funktioniert auf die gleiche Weise, außer dass Sie radikal sein müssen, damit das Fehlersystem radikal ist. Das bedeutet, dass Sie für jede Bedingung die Option haben, entweder bitte gehen oder verdammt verlassen als Aussage zu verwenden end. Diese Idee entstand nicht um das Please-End-System herum, sondern wurde eher als eigenständige Sache entwickelt, um dem Sprachstandard zu entsprechen.
Abschluss und Fazit
RPC ist eine Sprache der Spezialität und Verwirrung. Es ist eine Sprache, die nichts für neue Programmierer ist, eine Sprache, die für Experimente und tiefes Verständnis gedacht ist. Ganz zu schweigen davon, dass RPC Ihnen viel über die Beurteilung einer Programmiersprache beibringen wird. Ich hoffe auf jeden Fall, dass diese Sprache zumindest einige Leute ausprobieren und wenn nicht, hoffe ich, dass die meisten Leute sie sehen. Ich beabsichtige nicht, diese Sprache populär zu machen, ich würde sie lieber nur den Entdeckern überlassen oder eher den Leuten, die es wagen, weiterhin in die Bereiche der Gedanken anderer Leute zu forschen. Diese Sprache ist etwas Besonderes für mich, ihr Design, ihre Konzepte, ihr Name, ihr Banner und Logo sogar bis hin zum ursprünglichen Quellcode ist alles meins und das ist das Beste daran. Ich hoffe, dass diese Sprache in den Büchern bleibt und ihr Memo behält, um weiterhin radikal zu sein. Der Grund, warum ich kein Entwicklungsteam haben möchte, ist, dass jemand, der es ändert, bedeutet, dass ich jemandem erklären muss, wie diese Sprache funktioniert, und dass es einfach nicht das ist, was irgendjemand will oder braucht. Deshalb wird RPC weiterhin radikal bleiben, weiterhin unhöflich und niedlich sein, während es gleichzeitig Ihr Gehirn nach mehr Informationen durchforstet und weiterhin zwei Messer nimmt und Gehirnzellen zerschneidet, bis Sie Ihre Tastatur in zwei Hälften brechen möchten. Das ist es, worum es beim Erstellen einer Programmiersprache geht, um Kreativität. Seit Jahren machen Informatiker immer wieder diese Aussage Seien Sie weiterhin unhöflich und niedlich, während es Ihr Gehirn nach weiteren Informationen durchforstet und weiterhin zwei Messer nimmt und Gehirnzellen aufschneidet, bis Sie Ihre Tastatur in zwei Hälften brechen möchten. Das ist es, worum es beim Erstellen einer Programmiersprache geht, um Kreativität. Seit Jahren machen Informatiker immer wieder diese Aussage Seien Sie weiterhin unhöflich und niedlich, während es Ihr Gehirn nach weiteren Informationen durchforstet und weiterhin zwei Messer nimmt und Gehirnzellen aufschneidet, bis Sie Ihre Tastatur in zwei Hälften brechen möchten. Das ist es, worum es beim Erstellen einer Programmiersprache geht, um Kreativität. Seit Jahren machen Informatiker immer wieder diese AussageHow can I do this in a different wayNun, hier ist meine Art, etwas übermäßig Beliebtes zu nehmen und es so sehr zu verdrehen, dass es wie ein missgestalteter moderner Assembler aussieht, als ob Assembler ein Baby mit Fortran und C bekommen hätte. Bis zum nächsten Mal
~Totally_Not_A_Haxxer raus
Wenn Sie mit meinen Inhalten Schritt halten möchten, vergessen Sie nicht, mich zu unterstützen!
Entwicklungsorganisation
Entwicklungsseite
Instagram-Seite
https://www.instagram.com/Totally_Not_A_Haxxer

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































