====== Genesys-Manual ====== ===== Using the Compiler ===== You get primary help by using the --help or -h parameter gsys --help * [[gsys:gsys:run|Running a program]] * [[gsys:gsys:require|Global Requirements]] * [[gsys:gsys:test|Unit Tests]] ===== Part I: Basics ===== ==== Primary Knowledge ==== * [[gsys:tutorial:Installation]] \\ How to install Genesys on your Linux or Windows system * [[gsys:tutorial:Hello World]] \\ Learn how to write text and results to the console * [[gsys:tutorial:Expressions]] \\ What is the difference between a value and an expression? * [[gsys:tutorial:Operators]] \\ How can we assemble values to more complex expressions? * [[gsys:tutorial:Postfix-Operators]] \\ Learn how combine more than one operator * [[gsys:tutorial:Conditions]] \\ Make a decision and learn to control the program flow * [[gsys:tutorial:Loops]] \\ Iterative tasks - how to repeat something * [[gsys:tutorial:Functions]] \\ Assemble often used code to a reusable function ==== Playing with data ==== * [[gsys:tutorial:Array]] \\ Assemble variables to arrays and what can we do with it? * [[gsys:tutorial:Arguments]] \\ Get the command line arguments * [[gsys:tutorial:References]] \\ Referencing data * [[gsys:tutorial:Pointer]] \\ What is the difference between a reference and a pointer? * [[gsys:tutorial:Memory]] \\ How to get dynamic memory and how to get rid of it. * [[gsys:tutorial:Attributes]] \\ Specify your Ideas * [[gsys:tutorial:Structures]] \\ How to structure your data and why * [[gsys:tutorial:Files]] \\ Read and write files * [[gsys:tutorial:Castings]] \\ How to convert data from one type to an other. ===== Part II: Class Oriented Programming ===== * [[gsys:tutorial:Class]] \\ Classify your data! How to construct and destruct an object. * [[gsys:tutorial:Accessibility]] \\ How to define who may have access to your class * [[gsys:tutorial:Methods]] \\ The difference between a Function and a method * [[gsys:tutorial:Namespaces]] \\ How to put data and code into a namespace? * [[gsys:tutorial:Overloading]] \\ What is overloading and which ways do we have to implement it? * [[gsys:tutorial:Inheritance]] \\ How to create connections between classified data * [[gsys:tutorial:MultipleInheritance]] \\ What is multiple inheritance and why does Genesys support this feature * [[gsys:tutorial:VirtualInheritance]] \\ How to prevent diamonds in your software architecture ===== Part III: Datatype- and Object Oriented Programming ===== * [[gsys:tutorial:VirtualFunctions]] \\ Select an method depending on the data type of your object. * [[gsys:tutorial:MethodReferences]] \\ Select an method depending on the object you are using * [[gsys:tutorial:MethodPointer]] \\ Allow an interface which does nothing. * [[gsys:tutorial:Slicing]] \\ What is slicing and when does it happen? * [[gsys:tutorial:Type]] \\ Get runtime information of your type and reflect it ===== Part IV: Generic Oriented Programming ===== ===== Reference ===== ==== Types ===== * [[gsys:type:boolean|Boolean tyes]] ([[gsys:type:bool]], [[gsys:type:inquiry]]) * [[gsys:type:integer|Integer]] * [[gsys:type:floating|floating point]] * [[gsys:type:string|strings]] * [[gsys:type:enum|Enumerations]] * [[gsys:type:flags|Flags]] * [[gsys:type:array|Array]]