Fraktal SAS Programming: Unterschied zwischen den Versionen

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
K
 
(41 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Preface==
+
[[Kategorie:zazy]]
  
The ''SAS System ('''SAS''')'' is an impressive powerful ecosystem of languages, tools and programs leaving the user with all means at hand to work with data and satisfy his curiosity, be it of scientific origin or simply driven by work orders in a top-down ruled organization.
+
== In General ==
  
Given the above, it is not surprising that
+
'''Welcome to the ''Introduction to "Fraktal SAS Programming"''.'''
#SAS license fees appear high, and
 
#the individual trying to start a user career feels pretty lonesome.
 
  
Since no one would buy a modern smartphone to simply make phone calls it is likewise un-appropriate to use SAS solely as a
+
'''The pages provided here are intended to serve as guidelines for ''Beginners in SAS Based Reporting from Database Tables.'''
*SQL database system
 
*basket of tabulation programs
 
*graphics toolbox
 
*web publishing agent
 
*data-warehouse platform
 
*statistics package
 
*metadata manager
 
*source code generator
 
  
Indeed, SAS can perform any of these functions, and more, and even worse, a small team of SAS geeks can deliver any combination of them as scenario-tailored application in an awesome short time frame.
+
'''Why ''"Fraktal"''?''' [https://www.youtube.com/watch?v=qqRiZWGwk-A Start this movie on measurement of coast lines by using Fractals at 16:40 (German audio)]
  
Of course, the result will be a dynamic, self-documenting, metadata driven and generic sort of thing.
+
'''We are using the term ''"Fraktal"'' with a ''"k"'' here to emphasize, that the programming concept introduced is derived from ''Fractal Geometry'' in Mathematics but not identical to it.'''
  
That’s why SAS starters feel lonesome and hence, matured users have organized themselves in non-commercial networks worldwide, the largest of which is '''PhUSE''', the '''''[http://www.phuse.eu Pharmaceutical User Software Exchange]'''''.
+
'''''Fraktal SAS Programming''''' is considered to be ''"fractal"'' because the program archtitecture is suggested to use minimized i.e. smallest scale modules to comprise the implementation from. Unlike fractal curves segments, e.g. used in coast line measurement, the module size meets a lower limit introduced by [[Coding (from Fraktal SAS Programming)|syntactic properties]]. Nevertheless, the module size possible will range between a few lines and very few screen pages. Overall size of a module will very rarely reach 100 lines of code. This includes declares, communication and documentation as well as logic like loops and branches.
  
'''Are you ready?'''
+
'''To make these guidelines compatible with the subject they present, the structure is likewise modularized to a maximum: It is comprised from half-page text slides, making tiny lessons that are easily taken one by one.'''
  
'''Welcome to the club!'''
+
== In Detail ==
  
==Coding==
+
#[[Preface (from Fraktal SAS Programming)|'''Preface:''' Learn about appropriate positioning of the '''"SAS System"''' from '''"SAS Institute"'''.]]
 
+
#[[Coding (from Fraktal SAS Programming)|'''Coding:''' Read important considerations on front-end '''program structure''' and back-end '''runtime behaviour'''.]]
===Rules?===
+
##[[Implicit Coding (from Fraktal SAS Programming)|Implicit Coding]]
 
+
##[[Explicit Coding (from Fraktal SAS Programming)|Explicit Coding]]
While there is no technical reason to introduce and follow coding rules and typographical conventions, it has proven as helpful to do so depending on working context and purpose that is followed.
+
#[[Macro (from Fraktal SAS Programming)|'''Macro:''' Find out how every single aspect from your '''workflow definition''' can easily be '''reflected and implemented'''.]]
 
+
##[[Straightforward Coding (from Fraktal SAS Programming)|Straightforward Coding]]
'''''SAS is freedom''''' is good news for most ad-hoc programmers aiming to have results the same minute.
+
##[[Generalized Approach (from Fraktal SAS Programming)|Generalized Approach]]
 
+
##[[Advanced Coding (from Fraktal SAS Programming)|Advanced Coding]]
'''''SAS is freedom''''' is bad news for all team leads and managers bearing responsibility for sustainable usage of resources and maintenance of programs written by individuals that will most likely leave some day.
+
##[[Symbol Tables (from Fraktal SAS Programming)|Symbol Tables]]
 
+
##[[Parameter Scope (from Fraktal SAS Programming)|Parameter Scope]]
Throughout the text of this tutorial we will therefore adhere to a set of rules that might seem superfluous at 1st sight but will help to catch structure and process implemented in a program without deep-diving into the code.
+
##[[Extending Control (from Fraktal SAS Programming)|Extending Control]]
 
+
###[[Apply Logic (from Fraktal SAS Programming)|Apply Logic]]
===Standards!===
+
###[[Process Metadata (from Fraktal SAS Programming)|Process Metadata]]
 
+
####[[What is Metadata? (from Fraktal SAS Programming)|What is Metadata?]]
SAS supports modular coding very well because code processing follows a block or “group” structure as the architects at SAS Institute Inc. would put it. Let’s directly jump into this topic:
+
####[[Process Metadata: List (from Fraktal SAS Programming)|Process Metadata: List]]
 
+
####[[Process Metadata: Numbered (from Fraktal SAS Programming)|Process Metadata: Numbered]]
data basix;
+
####[[Process Metadata: Direct (from Fraktal SAS Programming)|Process Metadata: Direct]]
city='Washington'; lat="038° 054′ N"; long="077° 002′ W"; output;
+
###[[Workflow Documentation (from Fraktal SAS Programming)|Workflow Documentation]]
city='Berlin'; lat="052° 031′ N"; long="013° 024′ O"; output;
+
####[[Stored Workflow Documentation (from Fraktal SAS Programming)|Stored Workflow Documentation]]
city='Tokyo'; lat="035° 041′ N"; long="139° 046′ O"; output;
+
###[[Realtime Information (from Fraktal SAS Programming)|Realtime Information]]
proc sort; by lat;
+
##[[Fully Qualified Coding (from Fraktal SAS Programming)|Fully Qualified Coding]]
proc print; run;
+
#[[DBMS Interaction (from Fraktal SAS Programming)|'''DBMS:''' Talk to Database Management Systems from within your SAS program to build a seamlessly integrated workflow.]]
 
+
##[[Libname Engine (from_Fraktal_SAS_Programming)|Libname Engine]]
This appears to be an easy to read and straightforward written program, and this is definitely true. And indeed, this code will complete without error messages and produce a formatted list of three cities along with their explicit latitude and longitude.
+
##[[Hybrid Queries (from_Fraktal_SAS_Programming)|Hybrid Queries]]
 
+
##[[Passthru SQL (from_Fraktal_SAS_Programming)|Passthru SQL]]
'''But this is not the program that is processed by SAS.'''
+
#[[Programming (from Fraktal SAS Programming)|'''Programming:''' Communicate your algorithm to SAS code processors by applying them to data and code as well.]]
 
+
##[[Data Step Programming (from Fraktal SAS Programming)|Processing Records]]
'''What does SAS see?'''
+
###[[Read Text File with DSL (from Fraktal SAS Programming)|Read Text File]]
 +
###[[Create Dataset with DSL (from Fraktal SAS Programming)|Create Dataset]]
 +
###[[Process Data using DSL (from Fraktal SAS Programming)|Process Data]]
 +
##[[Macro Programming (from Fraktal SAS Programming)|Generating Code]]
 +
###[[Macro XSET (from Fraktal SAS Programming)|Copy environment from operating system]]
 +
###[[Macro XDIR (from Fraktal SAS Programming)|List OS directory in SAS LOG screen]]
 +
####[[Macro rXDIR (from Fraktal SAS Programming)|Try recursion and window front-end]]
 +
###[[Macro XEDIT (from Fraktal SAS Programming)|Open selected text file in SAS Program Eitor]]
 +
###[[Macro XAMINE (from Fraktal SAS Programming)|Build advanced function from basic SAS Macros]]
 +
#[[Data Structures (from Fraktal SAS Programming)|'''Data Structures:''' Discover the the key to flexibility and efficiency in SAS programming.]]
 +
##[[Tables and Views (from Fraktal SAS Programming)|Tables and Views]]
 +
##[[Meta Data Tables (from Fraktal SAS Programming)|Meta Data Tables]]
 +
##[[SAS Formats (from Fraktal SAS Programming)|SAS Formats]]

Aktuelle Version vom 27. Oktober 2015, 16:42 Uhr


In General

Welcome to the Introduction to "Fraktal SAS Programming".

The pages provided here are intended to serve as guidelines for Beginners in SAS Based Reporting from Database Tables.

Why "Fraktal"? Start this movie on measurement of coast lines by using Fractals at 16:40 (German audio)

We are using the term "Fraktal" with a "k" here to emphasize, that the programming concept introduced is derived from Fractal Geometry in Mathematics but not identical to it.

Fraktal SAS Programming is considered to be "fractal" because the program archtitecture is suggested to use minimized i.e. smallest scale modules to comprise the implementation from. Unlike fractal curves segments, e.g. used in coast line measurement, the module size meets a lower limit introduced by syntactic properties. Nevertheless, the module size possible will range between a few lines and very few screen pages. Overall size of a module will very rarely reach 100 lines of code. This includes declares, communication and documentation as well as logic like loops and branches.

To make these guidelines compatible with the subject they present, the structure is likewise modularized to a maximum: It is comprised from half-page text slides, making tiny lessons that are easily taken one by one.

In Detail

  1. Preface: Learn about appropriate positioning of the "SAS System" from "SAS Institute".
  2. Coding: Read important considerations on front-end program structure and back-end runtime behaviour.
    1. Implicit Coding
    2. Explicit Coding
  3. Macro: Find out how every single aspect from your workflow definition can easily be reflected and implemented.
    1. Straightforward Coding
    2. Generalized Approach
    3. Advanced Coding
    4. Symbol Tables
    5. Parameter Scope
    6. Extending Control
      1. Apply Logic
      2. Process Metadata
        1. What is Metadata?
        2. Process Metadata: List
        3. Process Metadata: Numbered
        4. Process Metadata: Direct
      3. Workflow Documentation
        1. Stored Workflow Documentation
      4. Realtime Information
    7. Fully Qualified Coding
  4. DBMS: Talk to Database Management Systems from within your SAS program to build a seamlessly integrated workflow.
    1. Libname Engine
    2. Hybrid Queries
    3. Passthru SQL
  5. Programming: Communicate your algorithm to SAS code processors by applying them to data and code as well.
    1. Processing Records
      1. Read Text File
      2. Create Dataset
      3. Process Data
    2. Generating Code
      1. Copy environment from operating system
      2. List OS directory in SAS LOG screen
        1. Try recursion and window front-end
      3. Open selected text file in SAS Program Eitor
      4. Build advanced function from basic SAS Macros
  6. Data Structures: Discover the the key to flexibility and efficiency in SAS programming.
    1. Tables and Views
    2. Meta Data Tables
    3. SAS Formats