\\ \\ \\ {{ :internal:genogle.png?nolink |}} \\ \\


\\ \\ \\ * [[gsys:|The Genesys-Manual]], [[gsys:index|Index]] * [[development|Currently under development]] * [[http://bugs.xsd.de]] - Bugzilla * [[notes:|Notes]] * [[llvm:|LLVM]] * [[links:|Links]] * [[links:cpp11|C++11]] * [[admin:|Administratives]] * [[https://blog.tartanllama.xyz/|Writting a Linux Debugger]] * [[https://eev.ee/blog/|Eev.ee-Blog]] Programmiersprachen im Vergleich * [[de:dev:|Entwicklung und Design von Genesys]] * [[99 bottles of beer]], [[http://www.cl.uni-heidelberg.de/kurs/skripte/prog1/html/page046.html|Mandelbrot mit Python]] * [[opcodes|OpCodes]]: [[http://ref.x86asm.net/]] * [[doc:|Development Documentation]]: [[doc:libffi|libFFI]] * [[languages|Hinweise auf andere Sprachen]] * [[http://vitiy.info/functional-lenses-for-cpp14/|Lenses for C++14]] (FDV-Connectors?) * [[progtall:|Progtall-Repository]] Änderungen * [[http://www.uni-ulm.de/index.php?id=5669]] * [[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]] * [[https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided|Advanced Compilers: The Self-Guided Online Course]] ---- * Calling Conventions: [[https://msdn.microsoft.com/en-us/library/k2b2ssfy.aspx|MS Visual Studio]], [[https://en.wikibooks.org/wiki/X86_Disassembly/Calling_Conventions|WikiBook x86 Disassembly]] * [[internal:bind_or_lambda]] * [[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 ====== * [[https://learn-anything.xyz/]] * [[https://www.gangboard.com/blog/devops-interview-questions-and-answers/]] * [[https://www.infoworld.com/article/3247799/development-tools/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html]] * [[source:index|Sourcecodes]] * [[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/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]] * [[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? Sorry, C++ im Backend ist definitiv das falsche Werkzeug. Keine ordentliche ORM-schicht die an Hibernate rankommt, kein Tooling für Microservices, nichts, was mit einer Service-Bus-Kommunikation vergleichbar wäre. PHP fass ich auch nicht freiwillig an. Aber mittlerweile gibt es besseres im Backend-Bereich. ====== Inspiring ====== * [[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 namespace XSD { namespace Core { void bla( double d ); }} 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. void XSD::Core::bla( double d); 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++ ===== * Buckeroo * Conan ===== Buildsystem ===== * [[https://thoughts-on-cpp.com/2019/04/10/introduction-into-c-builds-with-gradle/?fbclid=IwAR3R6cgCA6ItN4Nd3-eGSwaEKpqPGpx_UIML1SUauDp4d91XxVg-3Hk3LYM]] ====== Rexx / 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 ===== * [[https://www.youtube.com/watch?time_continue=1&v=yy8jQgmhbAU|OOP is dead, data oriented design]] * [[https://de.wikipedia.org/wiki/Feature_Oriented_Programming]] * [[https://www.quora.com/What-features-would-make-C-better?__nsrc__=4|What features would make C better?]] ====== Vergleiche ====== * [[http://www.java67.com/2018/07/java-enum-with-constructor-example.html]] <- Das können wir besser ====== Formate / WebAssembly ====== * [[https://lief.quarkslab.com/doc/latest/index.html]] ELF/PE Library? * [[https://oneraynyday.github.io/dev/2020/05/03/Analyzing-The-Simplest-C++-Program/?fbclid=IwAR3Mq7o7PO4QPUujPZYdzUiOacIqwJYT30-umh5isZ7q7_D-8YRMBqMTalI|ELF: Analyzing the simplest C++ Programm]] * [[http://www.linux-magazin.de/ausgaben/2017/07/webassembly/?utm-source=linux-magazin%20online%20newsletter&utm-campaign=fa1d3a6ccb-email-campaign-2018-04-20&utm-medium=email&utm-term=0-833a7db53c-fa1d3a6ccb-312332317]] ====== C# Future ====== * [[https://www.infoq.com/news/2018/05/CSharp-8-Future]] * [[https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/await|await und async-Schlüsselwörter ansehen]] ====== Compiler-Architecture ====== * [[https://www.quora.com/What-is-the-difference-between-Pascal-C-and-C++-compiler]] * [[https://en.wikipedia.org/wiki/GNU_Compiler_Collection#GENERIC_and_GIMPLE]] * [[http://www.semdesigns.com/Products/DMS/LifeAfterParsing.html]] * [[AbstractionLevels]] ====== Mars Programming Language ====== * [[https://mars-lang.appspot.com/index.html]] \\ enthält ein VIM-Syntax-Highlighting und Sourcecodes \\ "Purify" in einer imperativen Programmiersprache. ====== Assembler ====== * [[https://fgiesen.wordpress.com/2016/08/25/how-many-x86-instructions-are-there/]] * [[https://github.com/corkami/pics/tree/master/binary|Amazing File Format Posters]] * [[http://terminus.rewolf.pl/terminus/|Terminus Project]] * [[https://azeria-labs.com/writing-arm-assembly-part-1/]] * DOWNLOAD: [[http://www.davidsalomon.name/assem.advertis/AssemAd.html|Assemblers and Loaders]] ====== Benchmarks ====== * [[https://www.facebook.com/groups/programmierspass/permalink/627356490798380/]] * [[http://benchmarksgame.alioth.debian.org/]] * [[https://de.wikipedia.org/wiki/Ackermannfunktion]] * [[https://plus.google.com/113799692849034863536/posts/gsErdYesv6i]] Liste/Vector * [[http://rosettacode.org/wiki/Rosetta_Code]] - Programmvergleiche in unterschiedlichen Sprachen * [[https://jaxenter.com/energy-efficient-programming-languages-137264.html]] Energie-consumption * [[https://devopsworld.de/1133|Nettes einfaches Benchmark in verschiedenen Sprachen]] ====== Makefiles ====== * [[http://gittup.org/tup/index.html]] TupFiles? ====== Programmierprinzipien ====== * [[https://de.wikipedia.org/wiki/Prinzipien_objektorientierten_Designs]] * [[https://en.wikipedia.org/wiki/Metaobject]] * [[https://www.quora.com/What-is-functional-programming|Funktionale denotative Programmierung]] ====== Scriptgenerierung ====== * [[http://kripken.github.io/emscripten-site/]] ====== BLogs ====== * [[https://arne-mertz.de/]] Simplify C++! * [[https://www.slideshare.net/olvemaudal/deep-c/1]] ====== Andere Software ====== * [[http://www.golem.de/news/address-sanitizer-tor-browser-mit-besserem-schutz-vor-sicherheitsluecken-1510-117095.html|Address Sanatizer]] * [[http://c0de517e.blogspot.de/2014/06/where-is-my-c-replacement.html]] * EasyJIT: [[https://blog.quarkslab.com/easyjit-just-in-time-compilation-for-c.html]] ====== Libraries ====== * [[https://libgdx.badlogicgames.com/|libgdx]] * [[https://www.sfml-dev.org|libsfml]] * [[https://libcinder.org|Cinder]] ====== Mantras ====== * Es wird nichts gemacht, wozu nicht aufgefordert wird * Variablennamen sollten Datentypen entsprechen => Datentypen sollten einen klaren Namen haben * Kommentare sind überflüssig, wenn der Code selbstkommentierend ist * Maximize efficiency * You don't pay for what you don't use. * Trust the user. [but protect him] * Prevent likely user errors. [everythings likely] * Make features general * Don't contrain compiliers [execept is results in a unexplainable behavior] * Favor user over compiler writers. * Retain backwards compatibility * Be consistent with other features * [[https://www.youtube.com/watch?time_continue=21&v=KAWA1DuvCnQ&feature=emb_title|Each language rule easy to explain/justify in isolation //and in context of other rules//.]] ====== Stroustrup ====== * [[https://isocpp.org/blog/2015/09/bjarne-stroustrup-announces-cpp-core-guidelines|CPP Core Guidelines]] * [[https://channel9.msdn.com/Events/CPP/CppCon-2015/Writing-Good-C-14]] ====== Grundlegende Fragen ====== * [[http://www.c-plusplus.net/forum/328077|Anforderungen an eine Sprache für Spiele]] * [[http://www.codergears.com/Blog/?p=679|What makes Clang so special?]] * [[https://www.quora.com/How-would-you-design-the-perfect-programming-language]] * * [[https://de.wikipedia.org/wiki/International_Components_for_Unicode]] * [[https://www.quora.com/Which-is-the-most-in-demand-programming-language]] ===== Point-Free Programming ===== * googlen, einlesen. * Ziel der Sache ist Parameter im Prozessorregister zu halten, obwohl man über mehrere Funktionen hinweggeht, ähnlich einer Pipeline ===== Generisch ====== Kann es ein Konzept geben, das grundsätzlich Generisch ist? Also über die Idee "Container" hinausgeht. Zum Beispiel GUI + Text + Syntax-Highlighting => Texteditor? ===== Mehrdimensionale Ableitungen ===== Kann es ein Konzept geben, dass mehrdimensionale Ableitungen erlaubt. Wiki-String leitet von String ab. File-String leitet von String ab. (kann auf Festplatte lesen/schreiben) Replace-String leitet von String ab. (ersetzt Variablen innerhalb des Strings) Gibt es nun eine Möglichkeit, diese wieder zusammen zu führen ohne Interfaces zu nutzen? So dass alle Erweiterungen zusammengepackt werden, aber nicht die String-Klasse mehrfach auftaucht und auch nicht virtuell abgeleitet wird. Quasi eine Template-Ableitung. 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. 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; } ===== Ausbildung ====== * [[http://www.zeit.de/campus/2013/06/service-promotion-arten]] * [[https://www.youtube.com/watch?v=mHC4-W3OUTQ|Assembly Language Tutorial (Installation) auf Youtube]] * [[https://plus.google.com/+GuidoStepken/posts/jYq2rEQyMtn|From C# to productive #Golang cloud programmer within 2 weeks!]] ===== Social Media ===== * [[https://twitter.com/genericsystem?lang=de|Twitter]] ===== Stack ===== {{ :internal:stack.png?nolink |}}