====== AmbientTalk/2 Tutorial ====== {{:at:atlogo.jpg?60 }} The AmbientTalk/2 tutorial is subdivided into major chapters which each highlight a particular aspect of the language. These "aspects" can sometimes be best described as particular programming styles. === Jump to === - [[preface|Preface]] - [[iat|Interactive AmbientTalk (IAT) Shell]] - [[basic|Functional and Imperative Programming]] - [[basic#variables|Variables]] - [[basic#tables|Tables]] - [[basic#functions|Functions]] - [[basic#closure|Closures]] - [[basic#blocks|Blocks]] - [[basic#keywords|Keywords]] - [[basic#native_data_types|Native Data Types]] - [[basic#control_flow_constructs|Control Flow Constructs]] - [[objects|Object-oriented Programming]] - [[objects#Objects,_fields_and_methods|Objects, fields and methods]] - [[objects#Sending_messages|Sending messages]] - [[objects#Cloning_and_instantiation|Cloning and instantiation]] - [[objects#Delegation_and_cloning|Delegation and cloning]] - [[objects#Delegation_and_dynamic_inheritance|Delegation and dynamic inheritance]] - [[objects#First-class_delegation|First-class delegation]] - [[objects#Encapsulation|Encapsulation]] - [[objects#Uniform_Access|Uniform Access]] - [[multiparadigm|On Scoping, Closures, Methods and Messages]] - [[multiparadigm#lexical_scope_vs_object_scope|Lexical Scope vs Object Scope]] - [[multiparadigm#nesting_objects|Nesting Objects]] - [[multiparadigm#methods_vs_closures|Methods vs Closures]] - [[multiparadigm#external_methods_and_fields|External Methods and Fields]] - [[multiparadigm#first-class_methods|First-class Methods]] - [[multiparadigm#first-class_messages|First-class Messages]] - [[modular|Modular Programming]] - [[modular#namespaces_and_the_lobby|Namespaces and the lobby]] - [[modular#Importing_objects|Importing objects]] - [[modular#objects_as_traits|Objects as traits]] - [[modular#classifying_objects_using_type_tags|Classifying objects using type tags]] - [[modular#Exception_Handling|Exception Handling]] - [[modular#Escaping_continuations|Escaping Continuations]] - [[metaprogramming|Metaprogramming]] - [[metaprogramming|AmbientTalk without syntactic sugar]] - [[metaprogramming|Quasiquoting and splicing]] - [[metaprogramming|First-class abstract grammar]] - [[metaprogramming#multi-stage_generative_programming|Multi-stage Generative Programming]] - [[symbiosis|Symbiotic programming with Java]] - [[symbiosis#Symbiosis_Architecture|Symbiosis Architecture]] - [[symbiosis#Accessing_Java_from_within_AmbientTalk|Accessing Java from within AmbientTalk]] - [[symbiosis#Accessing_AmbientTalk_from_within_Java|Accessing AmbientTalk from within Java]] - [[reflection|Reflective Programming]] - [[reflection#mirrors|Mirrors]] - [[reflection#mirages|Mirages]] - [[reflection#The_Metaobject_Protocol|The Metaobject Protocol]] - [[actors|Concurrent Programming with Actors]] - [[actors#threads_vs_actors|Threads Vs Actors]] - [[actors#actors_and_far_references|Actors and Far References]] - [[actors#asynchronous_message_sending|Asynchronous Message Sending]] - [[actors#isolates|Isolates]] - [[actors#futures|Futures]] - [[actors#actor_mirrors|Actor Mirrors]] - [[actors#nesting_actors|Nesting Actors]] - [[distribution|Distributed Programming]] - [[distribution#going_online|Going Online]] - [[distribution#exporting_and_discovering_objects|Exporting and Discovering Objects]] - [[distribution#dealing_with_transient_failures|Dealing with Transient Failures]] - [[distribution#dealing_with_permanent_failures|Dealing with Permanent Failures]] - [[distribution#taking_offline_remote_objects|Taking Offline Remote Objects]] - [[appendix|Appendix: Libraries]] - [[appendix#unit_testing_framework|Unit testing framework]] - [[appendix#basic_collections|Basic Collections]] - [[appendix#top-level_functions|Top-level Functions]] - [[appendix#custom_exceptions|Custom Exceptions]] - [[appendix#language_extensions|Language Extensions]] - [[appendix#utilities|Utilities]]