Transvaal Colony and Game Oriented Assembly Lisp: Difference between pages

(Difference between pages)
Content deleted Content added
m grammar fix
 
rv unexplained deletion by 192.103.152.52
 
Line 1:
'''Game Oriented Assembly Lisp''' (or '''GOAL''') is a computer game programming language developed by [[Andy Gavin]] and the [[Jak and Daxter]] team at [[Naughty Dog]]. It was written using [[Allegro Common Lisp]] and used in the development of the entire [[Jak and Daxter]] series of games.
The '''Transvaal''' was one of the [[Provinces of South Africa|provinces]] of [[South Africa]] from [[1910]] until [[1994]]. The province no longer exists, and its territory now forms all, or part of, the provinces of [[Gauteng]], [[North West Province|North West]], [[Limpopo Province|Limpopo]] and [[Mpumalanga Province|Mpumalanga]].
 
Syntactically GOAL resembles [[Scheme (programming language)|Scheme]], though with many idiosyncratic features inspired by other languages such as classes, inheritance, and virtual functions. An example of what GOAL code looks like can be found at [http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html]. GOAL encourages an [[imperative programming]] style: programs tend to be comprised of sequence of events to be executed rather than the [[functional programming]] style of functions to be evaluated recursively. This is a diversion from [[Scheme (programming language)|Scheme]], which allows such [[side-effect (computer science)|side-effects]] but does not encourage imperative style.
==History==
The Transvaal region is known to have been inhabited since the 8th century by [[Venda language|Venda]] and [[Sesotho language|Sotho]] peoples. In [[1817]], the region was invaded by tribes pushed from their land by the [[Zulu]] king [[Shaka]] and his [[Impi]]s. This made the region very weak, and easy to [[Colonialism|colonize]] by the nearby European settlers.
In the [[1830s]] and the [[1840s]], descendents of [[Netherlands|Dutch]] and other settlers, collectively known as [[Boer]]s (farmers) or [[Voortrekkers]] (pioneers), exited the British [[Cape Colony]], in what was to be called the [[Great Trek]]. With their military technology, they overcame the local forces with relative ease, and formed several small Boer republics in areas beyond British control, without a central government.
 
Like many modern implementations of Common [[Lisp programming language|Lisp]], GOAL does not run in an interpreter, but instead is compiled directly into [[PlayStation 2]] machine code for execution. It offers limited facilities for [[Garbage collection (computer science)|garbage collection]], relying extensively on runtime support. It offers dynamic memory allocation primitives designed to make it well-suited to running in constant memory on a video game console. GOAL has extensive support for [[Inline expansion|inlined]] assembly code using a special <code>rlet</code> form[http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html], allowing programmers to freely mix assembly and higher-level constructs within the same function.
On [[January 17]], [[1852]] the [[United Kingdom]] signed the [[Sand River Convention]] treaty with 5000 or so of the Boer families, recognizing their independence in the region to the north of the [[Vaal River]], or the ''Transvaal''. In [[1856]] the Boers adopted the name [[South African Republic]] for the region, and a new racially-biased constitution was put in place.
 
The GOAL compiler is implemented in [[Allegro Common Lisp]]. It supports a long term compiling listener session which gives the compiler knowledge about the state of the compiled and therefore running program, including the symbol table. This, in addition to dynamic linking, allows a function to be edited, recompiled, uploaded, and inserted into a running game without having to restart. The process is similar to the "edit and continue" feature offered by some [[C++]] compilers, but allows the programmer to replace arbitrary amounts of code (even up to entire object files), and does not interrupt the running game with the debugger. This feature was used to implement code as well as level streaming in the [[Jak and Daxter]] games.
In [[1877]], after the republic faced considerable economic hardship and outside Zulu threats, Britain annexed the Transvaal, hoping that this move would be perceived by the Boers as salvation. But it wasn't - the Boers viewed it as an act of aggression, and protested. In [[December 16]], [[1880]] the independence of the republic was proclaimed again, leading to the first [[Boer War]]. The [[Pretoria Convention]] of [[1881]] gave the Boers self-rule in the Transvaal, under British oversight, and the republic was restored with full independence in 1884 with the London Convention, but not for long. Gold was soon discovered in [[Witwatersrand]] ([[1885]]), bringing in a rush of non-Boer European settlers (called ''uitlanders'', outlanders, by the Boers). This led to a destabilization of the republic; In [[1895]], Cape Premier [[Cecil Rhodes]] planned to support an uitlander [[coup d'etat]] against the Transvaal government. [[Leander Starr Jameson]] carried out this plan, without British autorization, in December of that year - in the ill-fated [[Jameson Raid]]. After the failed raid, there were rumors that [[Germany]] offered protection to the Boer repulic, something which alarmed the British. Fearing Britain's imminent annexation, the Boers launched a [[pre-emptive war|preemptive strike]] against the nearby British colonies in [[1899]], a strike which became the second [[Boer War]], a war which the Boers would lose.
The Boer War is a watershed event for the [[British Army]] in particular and for the [[British Empire]] as a whole. It was here that the British first used [[Concentration Camp]]s in a war setting {the first general use being by the Spanish during the Cuban insurrections of the 1890s}.
 
GOAL's first use was for the original [[Jak and Daxter]] PS2 game; the predecessor language, GOOL, was also developed by Andy Gavin for [[Crash Bandicoot (video game)|Crash Bandicoot]].
By May [[1902]], the last of the Boer troops surrendered, and the independent Boer republic in the Transvaal was no more - the region became part of the [[British Empire]]. In [[1910]] the Transvaal became a province of the newly created [[Union of South Africa]], a British [[Dominion]]. In [[1961]], the union ceased to be part of the [[British Commonwealth]] and became the [[Republic of South Africa]].
 
==External links==
In [[1994]], after South-Africa's first all-race elections, the former provinces and homelands were restructured, and a separate Transvaal province no longer exists. Parts of the old Transvaal now belong to the new [[Gauteng province|Gauteng]], [[North West Province|North West]], [[Limpopo Province|Limpopo]] and [[Mpumalanga Province|Mpumalanga]] provinces.
* http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml &mdash; Franz Inc. success story
* http://bc.tech.coop/blog/060118.html &mdash; Page about LISP developments by [[Paul Graham]] and [[Naughty Dog]]
* http://www.gamasutra.com/features/gdcarchive/2003/White_Stephen.ppt &mdash; (Powerpoint) ''Jak & Daxter: The Precursor Legacy'', development overview, lessons learned, very interesting
* http://www.gamasutra.com/features/gdcarchive/2003/Denman_Stu.ppt &mdash; (Powerpoint) ''Highly detalied continuous worlds'', about the streaming world loader
 
[[Category:Lisp programming language family]]
==Geography==
[[Category:Functional languages]]
The Transvaal province lay between [[Vaal River]] in the south, and the [[Limpopo River]] in the north, roughly between 22 1/2 and 27 1/2 S, and 25 and 32 E. To its south it bordered with the [[Orange Free State]] and [[Natal (South Africa)|Natal]] provinces, to its west were the [[Cape Province]] and the [[Bechuanaland Protectorate]] (later [[Botswana]]), to its north [[Rhodesia]] (later [[Zimbabwe]]), and to its east [[Portuguese East Africa]] (later [[Mozambique]]) and [[Swaziland]]. Except on the south-west, these borders were mostly well defined natural features.
[[Category:Object-oriented programming languages]]
 
Several [[Bantustan]]s were entirely inside the Transvaal: [[Venda]], [[KwaNdebele]], [[Gazankulu]], [[KaNgwane]] and [[Lebowa]]. Parts of [[Bophuthatswana]] were also in the Transvaal, with other parts in [[Cape Province]] and [[Orange Free State]].
 
Divisions:
* [[Zoutpansberg]]
 
Cities in the Transvaal:
* [[Heidelberg, Gauteng|Heidelberg]]
* [[Johannesburg]]
* [[Messina, South Africa|Messina]]
* [[Nelspruit]]
* [[Pietersburg]]
* [[Pretoria]]
* [[Vereeniging]]
 
==See Also==
* [[History of South Africa]]
 
==External links==
* [http://1911encyclopedia.org/T/TR/TRANSVAAL.htm Transvaal public-___domain article] from a [[1911 encyclopedia]] contains much more information about the early history of the Transvaal and its geology.
* [http://www.lib.utexas.edu/maps/south_africa.html Public-___domain historical maps of South Africa]
 
{{videogame-software-stub}}
[[de:Transvaal]]
[[it:Transvaal]]
[[nl:Transvaal]]
[[pl:Transwal]]