Ge Smallworld Gis Software

Magik is an object-oriented programming language that supports multiple inheritance and polymorphism, and it is dynamically typed. It was designed and implemented in 1989 by Arthur Chance of Smallworld Systems Ltd. as part of Smallworld Geographical Information System (GIS). Following Smallworld's acquisition in 2000, Magik is now provided by GE Energy, still as part of its Smallworld technology platform.

Magik (Inspirational Magik) was originally introduced in 1990 and has been improved and updated over the years. Its current version is 5.2.

In July 2012, Magik developers announced that they were in the process of porting Magik language on the Java virtual machine. The successful porting was confirmed by Oracle Corporation in November of the same year.[1]

  • 2Language features

The Smallworld Core platform is the foundation that underpins GE’s leading-edge industry-focused Smallworld application suites for utilities and telecommunications and a critical component of it is the Smallworld Database Server. Ge Smallworld Torrent Software MSS Magik Components v.45 A library of freely available Magik modules for use with Smallworld A library of freely available Magik modules for use with Smallworld GIS.

Similarities with Smalltalk[edit]

Magik itself shares some similarities with Smalltalk in terms of its language features and its architecture: the Magik language is compiled into byte codes interpreted by the Magik virtual machine. The Magik virtual machine is available on several platforms including Microsoft Windows, various flavours of Unix and Linux.

Magik is console based and code can be modified on the fly even when an application is running. The console can also be used to execute Magik code and to see the results.

Compiled code is stored in a single file called an image file. Each image file holds the compiled byte-codes and the state of the session (for example variable values) when the image was last saved.

Language features[edit]

Comments[edit]

Magik uses the # token to mark sections of code as comments:

Assignments[edit]

Magik uses the << operator to make assignments:

For clarity, this notation is read as 'a becomes 1.234' or 'b becomes b plus a'. This terminology separates assignment from comparison.

Magik also supports a compressed variation of this operator that works in a similar way to those found in C:

To print a variable you can use the following command

Symbols[edit]

As well as conventional data types such as integers, floats and strings Magik also implements symbols. Symbols are a special token data type that are used extensively throughout Magik to uniquely identify objects. They are represented by a colon followed by a string of characters. Symbols can be escaped using the vertical bar character. For example:

Dynamic typing[edit]

Magik variables are not typed as they are in say C# and can reference different objects at runtime. Everything in Magik is an object (there is no distinction between objects and primitive types such as integers):

Gis
Objects

Objects are implemented in Magik using exemplars. Exemplars have similarities to classes in other programming languages such as Java, but with important differences. Magik supports multiple inheritance, and mixins (which implement functionality with no data). New instances are made by cloning an existing instance (which will typically be the exemplar but does not have to be).

New exemplars are created using the statement def_slotted_exemplar(), for example:

Cd brooks audio sermons download pdf. This code fragment will define a new exemplar called my_object that has two slots (or fields) called slot_a (pre-initialized to 34) and slot_b (pre-initialised to 'hello') that inherits from two existing exemplars called parent_object_a and parent_object_b.

Comparison[edit]

Magik implements all usual logical operators (=, <, <=, >, >=, ~=/<>) for comparison, as well as a few unusual ones. The _is and _isnt operators are used for comparing specific instances of objects, or object references rather than values.

For example:

Methods[edit]

Methods are defined on exemplars using the statements _method and _endmethod:

It is convention to supply two methods new() (to create a new instance) and init() (to initialize an instance).

The _clone creates a physical copy of the person object. The _super statement allows objects to invoke an implementation of a method on the parent exemplar. Objects can reference themselves using the _self statement. An object's slots are accessed and assigned using a dot notation.

Methods that are not part of the public interface of the object can be marked private using the _private statement. Private methods can only be called by _self, _super and _clone.

Optional arguments can be declared using the _optional statement. Optional arguments that are not passed are assigned by Magik to the special object _unset (the equivalent of null). The _gather statement can be used to declare a list of optional arguments.

Iteration[edit]

In Magik the _while, _for, _over, _loop and _endloop statements allow iteration.

Here, the _while is combined with _loop and _endloop.

Here values.elements() is an iterator which helps to iterate the values.

In Magik generator methods are called iterator methods. New iterator methods can be defined using the _iter and _loopbody statements:

Procedures[edit]

Magik also supports functions called procedures. Procedures are also objects and are declared using the _proc and _endproc statements. Procedures are assigned to variables which may then be invoked:

Regular Expression[edit]

Magik supports // regular expression syntax:

and to capture groups in Regex:

HTTP Library[edit]

Magik supports making HTTP or HTTPS requests via http library, see below examples:

Language Quirks[edit]

Because Magik was originally developed in England, methods in the core smallworld libraries are spelled using British English. For example:

Collections[edit]

Like other programming language Magik too has collections. They include the following:

  • Simple Vector
  • Rope
  • Hash Table
  • Property List
  • Equality set
  • Bags

Hello World example[edit]

The following is an example of the Hello world program written in Magik:

References[edit]

  1. ^Jim Connors (2012-11-05). 'Sprinkle Some Magik on that Java Virtual Machine'. Retrieved 2012-11-06. With this new capability GE Energy has succeeded in hosting their Magik environment on top of the Java Virtual Machine

External links[edit]

  • MDT - Magik Development Tools IDE for GE Smallworld GIS developers
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Magik_(programming_language)&oldid=933719824'
Smallworld
Developer(s)GE Energy Connections
Stable release
Operating systemWindows
TypeGIS software
LicenseProprietary
Websitewww.gegridsolutions.com/geospatial/catalog/smallworld_core.htm

Smallworld is the brand name of a portfolio of GIS software provided by GE Energy Connections, a division of General Electric. The software was originally created by the Smallworld company founded in Cambridge, England, in 1989 by Dick Newell and others. Smallworld grew to become the global market leader for GIS in utilities and communications and remains in this position today.[1] Smallworld was acquired by GE Energy in September 2000.[2][3]

Smallworld technology supports application products for telecommunications, utilities, and public systems organizations.

Smallworld Product Suite[edit]

The Smallworld Product Suite Offerings include Asset Management and Geographic Information System software for:

  • Smallworld Physical and Logical Network Inventories, Fiber-to-the-Home solution, Physical Resource Assignment and Bearer Management for Telecommunications
  • Smallworld Electric Office, Gas Distribution Office, Global Transmission Office and Water Office for Utilities
  • Smallworld GeoSpatial Analysis for geospatial business intelligence
  • Smallworld GeoSpatial Server for web service integration and web mapping
  • Smallworld Design Manager for Engineering Design
  • Smallworld is also used by PowerOn, GE's Outage Management System

Technology[edit]

GE Energy's Smallworld GIS platform is based on three technologies:

  1. An object-oriented programming language called Magik that supports multiple inheritance, polymorphism and is dynamically typed.
  2. A database technology called Version Managed Data Store (VMDS) that has been designed and optimized for storing and analyzing complex spatial and topological data. The native Smallworld datastore can be stored in an Oracle Database. This allows the use of Oracle facilities for backups and recovery
  3. A Java Enterprise Edition architecture for web services and web mapping

References[edit]

  1. ^according to a 2010 Daratech report
  2. ^'GE Completes Acquisition of Smallworldwide plc'. 3 October 2000. Retrieved 18 July 2012.
  3. ^'GPU Selects Smallworld for Enterprise-Wide Network'. Retrieved 18 July 2012.

External links[edit]

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Smallworld&oldid=893727386'