Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
internal:start [2020/07/08 12:13] xin [I want to learn] |
internal:start [2025/04/07 15:25] (aktuell) xin [Inspiring] |
||
|---|---|---|---|
| Zeile 42: | Zeile 42: | ||
| * [[http://www.diku.dk/~torbenm/Basics/basics_lulu2.pdf|Basics of Compiler Design (300 Pages PDF)]] | * [[http://www.diku.dk/~torbenm/Basics/basics_lulu2.pdf|Basics of Compiler Design (300 Pages PDF)]] | ||
| * [[http://bob.cs.sonoma.edu/IntroCompOrg-RPi/sec-asld.html|Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi]] | * [[http://bob.cs.sonoma.edu/IntroCompOrg-RPi/sec-asld.html|Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi]] | ||
| + | * [[https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided|Advanced Compilers: The Self-Guided Online Course]] | ||
| ---- | ---- | ||
| Zeile 48: | Zeile 49: | ||
| * [[http://ithare.com/java-vs-c-trading-ub-for-semantic-memory-leaks-same-problem-different-punishment-for-failure/?fbclid=IwAR1PO5c_lw6ZjFVew8MhOL9jEzEeSqSKL_eMpLbUguJ-GfFqIF54i4mKVBY|Memory leaks C++ and Java]] | * [[http://ithare.com/java-vs-c-trading-ub-for-semantic-memory-leaks-same-problem-different-punishment-for-failure/?fbclid=IwAR1PO5c_lw6ZjFVew8MhOL9jEzEeSqSKL_eMpLbUguJ-GfFqIF54i4mKVBY|Memory leaks C++ and Java]] | ||
| + | |||
| + | ====== Python related ====== | ||
| + | |||
| + | * [[https://www.quora.com/Why-arent-there-perfect-Python-compilers/answer/Anton-Carver?comment_id=457800106&comment_type=2]] | ||
| ====== I want to learn ====== | ====== I want to learn ====== | ||
| Zeile 57: | Zeile 62: | ||
| * [[source:index|Sourcecodes]] | * [[source:index|Sourcecodes]] | ||
| * [[https://rust-lang-de.github.io/rustbook-de/|Rust-Tutorial (de)]] | * [[https://rust-lang-de.github.io/rustbook-de/|Rust-Tutorial (de)]] | ||
| + | * [[https://devblogs.microsoft.com/cppblog/new-safety-rules-in-c-core-check/?fbclid=IwAR1j4tUkLV3FJLUOOJEAyamCf5nic6d_9HYROGJLnNb_vCaNr6K7BoE_ONo|Safety Rules from Rust to C++]] | ||
| * [[https://www.quora.com/What-is-the-most-useful-algorithm-that-you-have-seen-implemented-in-a-real-life-project/answer/Shah-Zain-1|Algorithms ;)]] | * [[https://www.quora.com/What-is-the-most-useful-algorithm-that-you-have-seen-implemented-in-a-real-life-project/answer/Shah-Zain-1|Algorithms ;)]] | ||
| * [[https://www.quora.com/Only-for-curiosity-what-are-some-decent-alternatives-to-the-RAII-model-in-computer-programming|Alternative zu RAII (F#?)]] | * [[https://www.quora.com/Only-for-curiosity-what-are-some-decent-alternatives-to-the-RAII-model-in-computer-programming|Alternative zu RAII (F#?)]] | ||
| + | |||
| + | * [[https://www.circle-lang.org/]] Circle C++ | ||
| + | * [[https://nim-lang.org/]] NIM Programming Language | ||
| + | * [[https://docs.soliditylang.org/en/v0.8.19/index.html|Solidity Programming Language]] | ||
| * [[https://de.wikibooks.org/wiki/Mathe_f%C3%BCr_Nicht-Freaks|Mathe für Nicht-Freaks]] | * [[https://de.wikibooks.org/wiki/Mathe_f%C3%BCr_Nicht-Freaks|Mathe für Nicht-Freaks]] | ||
| * [[http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#main]] | * [[http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#main]] | ||
| + | * Eve-Library on Github: SIMD Operations | ||
| * Das [[https://www.youtube.com/watch?v=_yFPO1ofyF0|Video]] zeigt, wie CMake aus einem Shell-Skript heraus installiert wird. Als Alternative zu deb? | * Das [[https://www.youtube.com/watch?v=_yFPO1ofyF0|Video]] zeigt, wie CMake aus einem Shell-Skript heraus installiert wird. Als Alternative zu deb? | ||
| Zeile 71: | Zeile 82: | ||
| * [[https://www.quora.com/If-C-is-a-lower-level-language-then-what-can-Java-Python-do-that-C-cant/answer/Sascha-Atrops?__filter__=&__nsrc__=2&__sncid__=3350530248&__snid3__=5498932335&comment_id=61924078&comment_type=2]] | * [[https://www.quora.com/If-C-is-a-lower-level-language-then-what-can-Java-Python-do-that-C-cant/answer/Sascha-Atrops?__filter__=&__nsrc__=2&__sncid__=3350530248&__snid3__=5498932335&comment_id=61924078&comment_type=2]] | ||
| + | |||
| + | * Lässt sich Sprache als Lernplattform nutzen. Siehe Projektmanagement. Es wird ist immer wieder von Projektmanagement oder Mitarbeiter gesprochen, ein Heft ist aber linear. Mit einer Sprache könnte man Begriffe wie Klassen immer weiter dokumentieren, Tags anhängen, Interaktionen definieren und vor allem die semantische Korrektheit der Definitionen verifizieren. | ||
| + | |||
| + | * [[https://www.youtube.com/@LowLevelTV|LowLevelTV]] | ||
| + | ====== namespace ====== | ||
| + | |||
| + | Wenn man in der .cpp | ||
| + | <code cpp> | ||
| + | namespace XSD { | ||
| + | namespace Core { | ||
| + | |||
| + | void bla( double d ); | ||
| + | |||
| + | }} | ||
| + | </code> | ||
| + | ist bla entweder im Header als existent im Namespace XSD::Core oder es ist eine Funktion, die eine andere Funktoin als die im Header ( bla(int) ), also eine zusätzliche Funktion. Das gibt einen LInkerfehler. | ||
| + | <code> | ||
| + | void XSD::Core::bla( double d); | ||
| + | </code> | ||
| + | führt zu einem COmpilerfehler. | ||
| + | |||
| + | static bla( double d ) führt zu einer Funktion, die dem Linker nicht bekannt ist. | ||
| + | |||
| + | Hier stellt sich die Frage, ob man eine Funktion ohne Static oder klaren Namespace überhaupt erlaubt ist. | ||
| + | |||
| + | |||
| ===== PaketManager für C++ ===== | ===== PaketManager für C++ ===== | ||
| Zeile 82: | Zeile 119: | ||
| * Ich möchte eine einfache Anbindung an externe Computerprogramme (REXX) und Web-Schnittstellen (Microservices) | * Ich möchte eine einfache Anbindung an externe Computerprogramme (REXX) und Web-Schnittstellen (Microservices) | ||
| + | * Es sollte eine Art IRC-Server geben, wo man sich eine ID abholt, z.B. Server/Software/SubID und das quasi der Private Kanal ist, wie man einer Software Befehle geben kann. Grundsätzlich könnte Software sich in unterschiedliche Channels einhängen und Software könnte mit anderer Software privat "chatten" | ||
| ====== Watch ===== | ====== Watch ===== | ||
| Zeile 207: | Zeile 245: | ||
| Vergleiche XSD::Data::Primitive | Vergleiche XSD::Data::Primitive | ||
| + | |||
| + | ===== Speichern und Laden von Stacks ====== | ||
| + | |||
| + | Ich würde gerne ein System-Kommando haben, was ein Stackabbild einer Funktion speichert, also die Parameter rekonstruierbar macht, so dass diese Funktion mit den gleichen Parametern wieder gerufen werden kann. Das bedeutet ggfs. alle verpointerten Elemente wieder herzustellen und sich Gedanken um eine Versionskontrolle/Hash-Werte des Strukturaufbaus beim Speichern und wieder laden zu machen - im Worst-Case muss der komplette Strukturaufbau mit in das Abbild. | ||
| + | |||
| + | Sinn der Sache ist Tests anlegen zu können. | ||
| + | |||
| + | Hierzu könnte innerhalb von Tests ein Debug-Construct gerufen werden, der die Variablen nennt und belegt. | ||
| + | |||
| + | |||
| + | <code> | ||
| + | Segment contains | ||
| + | { | ||
| + | isOn is method( on is Point ) := | ||
| + | { | ||
| + | debug(0) test.writeTest( "testSegment"+on.x$+"_"+on.y$ ) >> io("file://c:\temp\mytests.g" ); // beim ersten Mal | ||
| + | debug(500) test.writeTest( "testSegment"+on.x$+"_"+on.y$ ) >> io("file://c:\temp\mytests.g" ); // beim 500. Mal | ||
| + | debug(on.x ==5) test.writeTest( "testSegment"+on.x$+"_"+on.y$ ) >> io("file://c:\temp\mytests.g" ); // wenn x == 5 ist. | ||
| + | | ||
| + | return ... | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | |||
| + | // test | ||
| + | testSegment5_0 is test := | ||
| + | { | ||
| + | s is debug Segment( source = debug Point( debug X(0.0), debug Y(0.0) ) | ||
| + | target = debug Point( debug X(10.0), debug Y(0.0) ) ); | ||
| + | on debug construct Point( debug construct(5,0), debug construct(0.0) ); | ||
| + | | ||
| + | expectedValue = // Put Expection here | ||
| + | | ||
| + | return s.isOn( on ) = expectedValue; | ||
| + | } | ||
| + | </code> | ||
| ===== Ausbildung ====== | ===== Ausbildung ====== | ||