Wprowadzenie do RPC (Radical Processing Core)
Wstęp
Ten artykuł będzie mówił o moim aktualnym języku programowania o nazwie RPC. RPC było czymś, z czym ludzie byli zdezorientowani. Remote Procedure CallZapewniam, że w tym przypadku RPC nie jest zdalnym wywołaniem procedury. Zamiast tego RPC to język programowania o nazwie Radical Processing Core. Język ten bierze swoją nazwę od tego, jak radykalny i jak inny miał być. Ten artykuł zawiera również szczegółowe informacje na temat matematyki, inżynierii front-end, dlaczego, jak i co najważniejsze.
Zrozumienie dlaczego
Dla wielu programistów marzeniem jest zbudowanie własnego języka programowania dla zabawy, jednak bardzo niewielu faktycznie wypełnia tę misję. Powodem jest to, że budowanie języka programowania jest trudne. Projekt, który może kryć się za najbardziej złożonymi częściami języka, sprawia, że jest to naprawdę trudne. Zwłaszcza jeśli planujesz go skompilować. Moja misja była inna, nie chciałem budować języka dla zabawy, po prostu chciałem stworzyć język, który sprawia, że złożone rzeczy stają się łatwe, a łatwe trudne, jeśli ma to jakikolwiek sens. RPC było wyłącznie moim własnym językiem, nie czerpałem inspiracji z żadnego języka, nie korzystałem z żadnych pomysłów projektowych, nie czerpałem inspiracji z żadnej osoby, rzeczy, przedmiotu, języka, koncepcji itp. Ten projekt był wyłącznie mój. Powodem, dla którego RPC było takie, jakie było, i sposób, w jaki wyszedł jego projekt, było dokładnie to, że nie miało być skierowane do określonej grupy ludzi, tylko do mnie. Powodem tego jest to, że gdybym miał czerpać inspirację z innego języka, mocno wierzę w tym momencie, że jest to tylko rozszerzenie obecnego języka, takiego jak C # w Javie. Zanim przejdę do odpowiedzi dlaczego, narysujmy ogólne podstawy języka.
- Koncepcja: koncepcja RPC polegała na uczynieniu łatwych aplikacji trudnymi, a trudnych łatwymi. Oznaczało to, że jeśli chcesz wydrukować coś na ekranie, musisz zbudować własne strumienie wejściowe i wyjściowe za pomocą RPC. Oznaczało to również, że aplikacje takie jak sterowniki jądra, moduły ładujące, czytniki i programy piszące pamięci, programy odwzorowujące, a nawet coś tak złożonego jak UNIX SOCKETS byłyby łatwiejsze do zaimplementowania niż wyjścia.
- Projekt: każdy język jest wyjątkowy na swój sposób, ale RPC było inne, było WIĘCEJ niż tylko wyjątkowe, było WIĘCEJ niż tylko złożone. RPC zaprojektowano tak, aby mieszać ci w głowie tak bardzo, że wprawiłoby cię to w mentalną spiralę na wiele dni i zdezorientowało. Mimo że błędy interpretera są łatwe do zrozumienia, samo RPC nie jest. Miałby bardziej matematyczną implementację, dzięki której używasz symboli tan, cos, e itp., Po prostu tworzy coś tak prostego, jak ponownie strumień wyjściowy. Ten język miał z tobą tak namieszać, że skłoni cię do zastanowienia się, dlaczego wybrałeś karierę programisty. RPC był językiem, który miał być zbudowany na surowo i skompilowany przy użyciu asemblera X86, jednak problem sprowadzał się do poziomu umiejętności programisty (ja). Nie znam wystarczająco dużo lub prawie wystarczająco asemblera, zwłaszcza asemblera X86, aby zrozumieć, jak zbudować własny kompilator. W rzeczywistości jedyny kompilator, jaki kiedykolwiek zbudowałem, był w C dla języka programowania BRAINF, co było bardzo łatwe do wykonania, biorąc pod uwagę rozmiar języka. Oznaczało to, że RPC oficjalnie zacząłby jako interpretowany język programowania. RPC będzie również używać Go jako zaplecza dla języka programowania, ponieważ tak, go można używać jako zaplecza. Projekt języka zostanie pokazany w dalszej części tego artykułu. Ale pamiętaj, że język został zaprojektowany, aby z tobą zadzierać. RPC będzie również używać Go jako zaplecza dla języka programowania, ponieważ tak, go można używać jako zaplecza. Projekt języka zostanie pokazany w dalszej części tego artykułu. Ale pamiętaj, że język został zaprojektowany, aby z tobą zadzierać. RPC będzie również używać Go jako zaplecza dla języka programowania, ponieważ tak, go można używać jako zaplecza. Projekt języka zostanie pokazany w dalszej części tego artykułu. Ale pamiętaj, że język został zaprojektowany, aby z tobą zadzierać.
- Podzbiory: Podzbiory RPC to RPCT, RPCJ, RPCX, RPCG, RPCF, które oznaczają szablony RPC, JSON, XML, GO, FORTRAN. Oznacza to, że będziesz mógł pisać RPC w aktywnym kodzie HTML, kodzie JSON, kodzie XML, kodzie Go, a nawet kodzie FORTRAN i powiedzieć silnikowi zaplecza RPC, aby przeanalizował i zlokalizował kod RPC w plikach json lub XML lub html itp. to by się przydało.
- Superzbiory: C ma superzbiór o nazwie C++, a C++ ma superzbiór o nazwie Carbon. RPC działałoby w podobny sposób, RPC miałby RPC++, który byłby bardziej satysfakcjonującą, ale matematyczną częścią języka programowania. Oznaczało to, że pliki .RPC++ będą mogły używać klas i modułów itp., ponieważ normalne RPC nie używało modułów i klas. Drzewa działały jak klasy, a węzły działały jako moduły. Więc zamiast
class classname {}ciebie maszRPC_NODE somenodename(){[]}
Dlaczego interpretowane?
Pierwotny projekt RPC miał być, jak wspomniano powyżej, skompilowany i napisany w asemblerze X86, ale oto dlaczego.
- Brak wiedzy o asemblerze X86 lub jakiejkolwiek formie asemblera
- Brak mistrza lub kompleksowego zrozumienia budowania kompilatorów z języków takich jak asembler
- Łatwiej jest tworzyć tłumaczy ustnych i na nich budować.
Co
Z każdym językiem programowania pojawiają się dwa główne pytania, a mianowicie what and why. Cóż, już wiemy, dlaczego to zrobiliśmy, więc czym dokładnie stanie się RPC. RPC stanie się językiem, który rozwiązuje kilka problemów we współczesnych programach.
- Matematyka: Z jakiegoś powodu współczesne języki programowania, które nie zostały opracowane przez organizacje takie jak Google, Amazon czy Apple, mają bardzo, bardzo złą implementację matematyki. Ponieważ RPC jest językiem, który miał być bardziej niezawodny i zaawansowany, ale w niektórych przypadkach mniej trudny, matematyczna implementacja w RPC będzie znacznie bardziej intensywna. Standardowe COS, TAN, URAND, RAND itp. będą nadal używane, ale będzie też więcej niestandardowych implementacji.
- Błędy kompilatora i/lub systemy sugestii: Większość języków, takich jak Go, ma dziwny system błędów, mimo że system paniki jest dobrze zbudowany, brakuje im wielu opisów błędów, zwłaszcza im bardziej skomplikowany. Języki takie jak python mówią, że wciąłeś za dużo, nie podając sugerowanej kolumny, ani nawet nie podają ci bezpośredniej linii, czasami jest powyżej. Tak więc RPC będzie działać jak jego silnik szablonów. Na przykład, jeśli popełnisz błąd w linii 15 swojego kodu, przyniesie i wyprowadzi 5 linii przed i 5 linii po tym kodzie. Powodem tego jest zapewnienie ogólnego obszaru wyjątku lub miejsca, w którym wystąpił błąd, aby upewnić się, że nie zgubisz się w przypadku, gdy tłumacz zgłosi błąd. Jeśli błąd kompilatora dotyczy czegoś w rodzaju strumienia lub czegoś złożonego, takiego jak operatory bitowe, najprawdopodobniej wystąpi błąd matematyczny z głębokim zrozumieniem, co dokładnie poszło nie tak, z sugestią od czasu do czasu, czym go zastąpić. Załóżmy na przykład, że tworzysz program 7-liniowy i ma on błąd składniowy w wierszu 4, kolumna 2 z dziwnym symbolem. RPC wyświetli takie instrukcje.
- User Experience: Chociaż RPC nie ma na celu zadowolenia użytkownika i utrudnia pracę, jeśli jest to cokolwiek trudniejsze, ułatwi użytkownikowi korzystanie z niego pod względem błędów, pisania, notatek, importów, plików itp. RPC ma szeroki wybór plików, które są następujące
Cóż, jest dużo nazw plików, dlaczego? Cóż, RPC ma wiele sposobów deklarowania i dzielenia danych. Dane RPC powinny być bezpośrednio przywoływane przez .rpc, jeśli nie zawierają xml, json, html, template, fortran, go, c ++, C, Lua, Trees, Tree nodes, fixeds itp. Wszystkie pliki mają inne znaczenie
- RPC: Surowy plik kodu źródłowego RPC
- RPCT: surowy plik kodu źródłowego szablonu RPC
- RPCX: surowy plik kodu źródłowego szablonu RPC XML
- RPCJ: surowy plik szablonu kodu źródłowego RPC JSON
- RPCG: surowy plik kodu źródłowego szablonów RPC GO
- RPCF: surowy plik kodu źródłowego szablonów RPC Fortran
- RPCH++: Surowy plik kodu źródłowego RPC zdefiniowany dla drzew, węzłów, przestrzeni nazw itp
- RPC++: Surowy plik kodu źródłowego RPC dla superzestawu RPC++ podobnego do R++
- RPCCLCCPQ: Radical Processing Core C, Lua, C++, PQ. Ten plik był bardzo niezręczny, więc pozwól mi wyjaśnić. Ten typ pliku nie będzie działać jako plik główny i nie może działać jako plik główny, ale będzie działał jako plik
biwersja RPC. Główne pliki RPC lub niektóre pliki nie mogą mieć po prostu drzew i węzłów z głównymi funkcjami, przestrzeniami nazw, importami, modułami itp., ponieważ ten język nie jest FORTRANem, pozwala na jednoczesne przechowywanie osobnego pliku. Ten plik umożliwia lokalne ładowanie kodu Lua, C++, C, RPC poprzez wywoływanie poszczególnych funkcji, a także umożliwia korzystanie z drzew, węzłów, modułów, przestrzeni nazw i innych form kodu RPC w jednym pliku. Ten plik jest projektem koncepcyjnym i nie zostanie zaimplementowany do późniejszych wersji programu ze względu na to, jak bardzo złożony musi być ten plik i jak dobrze musi być zaprojektowany język, aby go zaimplementować i zaakceptować. Poniższy przykład jest przykładem tego super zestawu pliku., - Wreszcie, ale nie mniej ważne, jest łatwe: większość dotychczasowych języków programowania sprawia, że najbardziej skomplikowane zadania są trudne do wykonania, a najłatwiejsze zadania bardzo łatwe. Prawdopodobnie mówisz „oczywiście haxxer, że tak właśnie zbudowane są języki”, cóż, widzisz, nie jestem zbudowany w ten sposób XD. Oznacza to, że zamiast nadawania priorytetu front-endowi i nadawania priorytetu łatwym rzeczom w języku, RPC będzie nadawać priorytet trudniejszym, bardziej skomplikowanym rzeczom. Obejmuje to takie rzeczy, jak kodowanie ciągów znaków, dekodowanie ciągów znaków itp. RPC chce, abyś tworzył zaawansowane aplikacje, takie jak exploity, aplikacje graficzne, aplikacje po stronie serwera, a nawet niestandardowe sieci, a nie wyświetlanie czegoś na ekranie. Z tego powodu RPC nie jest zalecane dla nowych programistów lub będzie zalecane ze względu na to, jak niesamowicie złożona jest struktura RPC i jak bardzo skomplikuje się przy pisaniu prostych aplikacji. Praktyczną zasadą w tym języku jest to, że Twoja aplikacja MUSI mieć złożony temat. Jeśli nie jest dobrze, będziesz powodował więcej pracy, co nie jest całkowicie celem, ale całkowicie nie jest celem języka LOL. Lubię ten język, ponieważ nie wydaje mi się, aby istniał język, który sprawia, że tworzenie skomplikowanych aplikacji jest tak łatwe, a tworzenie łatwych aplikacji jest tak skomplikowane. Jeśli nie jest dobrze, będziesz powodował więcej pracy, co nie jest całkowicie celem, ale całkowicie nie jest celem języka LOL. Lubię ten język, ponieważ nie wydaje mi się, aby istniał język, który sprawia, że tworzenie skomplikowanych aplikacji jest tak łatwe, a tworzenie łatwych aplikacji jest tak skomplikowane. Jeśli nie jest dobrze, będziesz powodował więcej pracy, co nie jest całkowicie celem, ale całkowicie nie jest celem języka LOL. Lubię ten język, ponieważ nie wydaje mi się, aby istniał język, który sprawia, że tworzenie skomplikowanych aplikacji jest tak łatwe, a tworzenie łatwych aplikacji jest tak skomplikowane.
Często dostaję to pytanie, niektórzy zawsze będą mi mówić, że nie ma sensu tracić czasu na budowanie aplikacji, która już istnieje. I tu się mylisz przyjacielu! To nie jest strata czasu tylko dlatego, że
- 1: Zostanie użyty
- 2: To poprawi moje umiejętności
- 3: Zostanie zbadany więcej
- 4: Dodaje więcej tematów do pisania i mówienia
- 5: Odkrywa nowe dziedziny
Zrozumienie, jak działa RPC
Teraz, gdy mamy już za sobą wstęp i podstawowe informacje, możemy przejść do tego, jak dokładnie działa RPC, jego składni, systemu błędów itp. Należy pamiętać, że RPCT jest jedynym realistycznym dowodem na to, że RPC jest używane, jednak język jest w fazie rozwoju, ponieważ ten artykuł jest w trakcie pisania i wkrótce zostanie opublikowany w 2023 r. Poniżej przedstawiono ogólne tematy i sposób, w jaki RPC sobie z nimi radzi.
- Typy danych: Typy danych są budowane bardzo specyficznie i mogą mieć pełne nazwy. Większość języków zapewnia
int, bool, string, int32, uint32, uint16, int16 etc....dobre pisanie RPC wymaga wpisywania całej rzeczy, aby dokładnie określić, co robi. na przykład, jeśli chcesz mieć zmienną, która ma typ danych liczby całkowitej, musisz określić,Variable Integer varname = 1;czy chcesz mieć wartość logiczną, którą wpiszeszVariable Boolean varname = true, jeśli chcesz liczby całkowite bez znaku,Variable Unsigned_Integer32 Varname = 8913671371276782367862347823423478itp . - Metody i argumenty metody: Metody są zdefiniowane trochę dziwnie i używają serii strzałek i symboli do definiowania typów danych, argumentów itp. Jeśli chcesz zadeklarować funkcję lub metodę w RPC, RPC ma regułę zwaną TFAL ( Najpierw wpisz Argument Last ), co oznacza, że musisz powiedzieć RPC o typie danych przed rozpoczęciem listy argumentów. Załóżmy na przykład, że chcesz, aby funkcja zawierała 2 argumenty typu String, które należy wpisać
String : String => FunctionName(x,y) {}Po zadeklarowaniu typów danych, których należy użyć:do ich rozdzielenia i=>poinformowaniu RPC, do której funkcji należą te typy danych, po czym zdefiniujesz nazwa funkcji wraz ze zmiennymi. Więc gdybyś miałString : Integer => FunctionName(x,y), X byłby typu String, a Y byłby typu Integer. Ten sam rodzaj dotyczy typów zwracanych. => mówi RPC, że chcesz zainicjować zmienne, symbol -> mówi RPC, że chcesz zwrócić zmienne. Więc jeśli chciałbyś mieć funkcję, która pobierałaby 3 argumenty i zwracała ten sam typ, napisałbyś tę funkcję w ten sposób.
Integer : Integer : Integer => Function(x, y, z) -> Integer32 {
Variable Integer32 Varname = x+y+z
<-Varname
}
Variable Type namewięc jeśli chcesz mieć zmienną typu String, wpisz Variable String varname = "data". Zmienne globalne to także kolejna rzecz, którą możesz utworzyć za pomocą Globalsłowa kluczowego. Globalne muszą być zdefiniowane za pomocą A :Więc na przykład, jeśli chciałbyś zdefiniować zmienną globalną, użyłbyś Global->Varname : Integer32 = "23191289429034324236746723"całkiem proste, prawda?Budowanie pomysłu
W miarę rozwoju języka programowania zmieni się od pierwotnego pomysłu. Wiem, że RPC, kiedy zacznę tworzyć, stanie się o wiele bardziej zagmatwane i skomplikowane, co oznacza, że zmieni się projekt. Ogólnie pomysł nie powinien się zbytnio zmieniać, ale nadal będzie się zmieniał. Kontynuując budowanie tego języka, planuję stworzyć język, który byłby nieco bardziej zwariowany, ale dla hakerów. Istnieje już język dla hakerów, ale mówię o większym kodowaniu i łatwiejszych sposobach wykonywania pewnych zadań, które nie są łatwiejsze. W końcu RPC to język, który sprawia, że każda łatwa aplikacja jest trudna, a każda trudna aplikacja łatwa. Ten pomysł pozostanie taki sam nawet w fazach rozwoju, renderowanie obrazu, wstrzykiwanie obrazu, manipulacja danymi, implementacja algorytmiczna itp. Będą znacznie łatwiejsze i taka jest ogólna idea. Chcemy jednak zachować ten system w jak największym stopniu i zachować go tak prostym, jak to tylko możliwe. Teraz język, o którym już mówiliśmy, jest bardzo radykalny i sprawia, że tworzenie programów, które, jak wszyscy wiemy, jest przeciwieństwem języków, które powinny być, jest naprawdę szalone. Jednak w tym punkcie zwrotnym chcę również, aby system błędów był radykalny, co oznacza, że będzie na ciebie krzyczeć i generować złożone błędy, ale łatwe do zrozumienia. Znasz język, w którym kończysz tryby warunkowe, pętle, funkcje itp Jednak w tym punkcie zwrotnym chcę również, aby system błędów był radykalny, co oznacza, że będzie na ciebie krzyczeć i generować złożone błędy, ale łatwe do zrozumienia. Znasz język, w którym kończysz tryby warunkowe, pętle, funkcje itp Jednak w tym punkcie zwrotnym chcę również, aby system błędów był radykalny, co oznacza, że będzie na ciebie krzyczeć i generować złożone błędy, ale łatwe do zrozumienia. Znasz język, w którym kończysz tryby warunkowe, pętle, funkcje itpPLEASE ENDi powie ci, że jesteś niegrzeczny, jeśli tego nie zrobisz? Cóż, nasz język działa w ten sam sposób, z wyjątkiem tego, że musisz być radykalny, aby system błędów był radykalny. Oznacza to, że dla każdego trybu warunkowego masz możliwość użycia proszę idź lub kurwa zostaw jako endoświadczenie. Ten pomysł nie powstał wokół systemu proszę, ale został raczej utworzony jako samodzielna rzecz, aby pasowała do standardu językowego.
Zakończenie i zakończenie
RPC to język specjalizacji i zamętu. To język, który nie jest przeznaczony dla nowych programistów, język przeznaczony do eksperymentów i głębokiego zrozumienia. Nie wspominając o tym, że RPC nauczy Cię wiele o ocenianiu języka programowania. Mam nadzieję, że przynajmniej część osób spróbuje tego języka, a jeśli nie, to większość ludzi w końcu go zobaczy. Ten język nie jest czymś, co zamierzam spopularyzować. Wolałbym raczej zatrzymać go tylko dla odkrywców, a raczej dla ludzi, którzy odważą się eksplorować królestwa umysłów innych ludzi. Ten język jest dla mnie wyjątkowy, jego projekt, koncepcje, nazwa, baner i logo, aż do początkowego kodu źródłowego, są moje i to jest w nim najlepsze. Mam nadzieję, że ten język pozostanie w książkach i zachowa swoją notatkę, aby nadal był radykalny. Powodem, dla którego nie chcę zespołu programistów, jest to, że ktoś, kto go zmienia, oznacza, że muszę komuś wyjaśnić, jak działa ten język, a zwykłe dzielenie się umysłami po prostu nie jest tym, czego ktokolwiek chce lub potrzebuje. Dlatego RPC nadal będzie radykalna, nadal będzie niegrzeczna i urocza, jednocześnie podważając twój mózg w celu uzyskania dodatkowych informacji i nadal bierze dwa noże i kroi komórki mózgowe, aż chcesz złamać klawiaturę na pół. Na tym polega budowanie języka programowania, na kreatywności. Od lat informatycy zawsze wygłaszali oświadczenie nadal być niegrzecznym i uroczym w tym samym czasie, gdy podważa twój mózg, aby uzyskać więcej informacji i nadal bierze dwa noże i kroi komórki mózgowe, aż chcesz złamać klawiaturę na pół. Na tym polega budowanie języka programowania, na kreatywności. Od lat informatycy zawsze wygłaszali oświadczenie nadal być niegrzecznym i uroczym w tym samym czasie, gdy podważa twój mózg, aby uzyskać więcej informacji i nadal bierze dwa noże i kroi komórki mózgowe, aż chcesz złamać klawiaturę na pół. Na tym polega budowanie języka programowania, na kreatywności. Od lat informatycy zawsze wygłaszali oświadczenieHow can I do this in a different wayoto mój sposób, mój sposób na wzięcie czegoś zbyt popularnego i przekręcenie go tak bardzo, że wygląda jak zniekształcony współczesny asembler, jakby asembler miał dziecko z fortranem i C. Do następnego razu
~Totally_Not_A_Haxxer odpada
Jeśli chcesz być na bieżąco z moimi treściami, nie zapomnij mnie wesprzeć!
Organizacja rozwoju
Strona rozwoju
strona na Instagramie
https://www.instagram.com/Totally_Not_A_Haxxer

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































