Goo Programming Language Help For Students

Introduction to Goo

Goo is an object-oriented and lexically scoped programming language. It is designed to be simple, productive, powerful, extensible, dynamic, efficient and real-time. It heavily leverages features from many earlier languages. GOO's main goal is to offer the best of both scripting and delivery languages while at the same time incorporating an extreme back-to-basics philosophy. GOO is a dynamic type-based object-oriented language. It is designed to be simple, productive, powerful, extensible, dynamic, efficient and real-time. It heavily leverages features from many earlier languages. In particular, it attempts to be a simpler, more dynamic, lisp-syntaxed Dylan and an object-oriented Scheme.

Example: Algorithm for computing a className's linearized ancesters from its parents.

{`
(dm className-ordered-ancestors (c| => )

  (def parents (className-parents c))

  (rep merge-lists

      ((partial-cpl|     

         (lst c)) 

       (remaining-lists| 

         (add (map className-ancestors parents) parents)))

    (if (all? nul? remaining-lists)

        (rev! partial-cpl)

        (loc ((candidate (c) 

                (loc ((tail? (l|) (mem? (tail l) c)))

                  (and (not (any? tail? remaining-lists)) c)))

              (candidate-at-head (l|)

                (and (not (nul? l)) (candidate (head l)))))

          (def next (any? candidate-at-head remaining-lists))

          (if next

              (loc ((del-next (l|)

                      (if (== (head l) next) (tail l) l)))

                (merge-lists

                 (pair next partial-cpl) 

                 (map del-next remaining-lists)))

              (error "inconsistent precedence graph"))))))



`}

Compiler Download

To get started, see Download and install Goo and follow the instructions....

Goo Programming Language