Sabado, Pebrero 11, 2012

Slate (As A Programming Language)


    Hi there! Sasuke is here again for another blog. Ngayon naman eh ang paguusapan natin eh tungkol sa mga programming languages. 
_________________________________________________________________________________

What is a programming language?
      Kung ako ang tatanungin, pag narinig ko ang mga salitang 'programming languages' eh ang una kong naiisip eh C++. Ang unang programming language na natutunan ko sa pagiging ComSci student ko. Para sa akin ang definition ng programming language is a program that contains commands that solve problems. . . .  Kaya ka naman kasi gumagamit ng programming language eh para masolve yung mga problema na ibibigay sayo ng prof mo. .  hehehe. . 
       Anyway, professionals define programming language as 'A programming language is a computer language programmers use to develop applications, scripts, or other set of instructions for a computer to execute.'
     
     My another definition for a programming language is any program na gagawa ka ng lines of codes para mautusan mo ang computer mo na gawin ang isang particular command that will solve a problem at may makukuha kang output.
     Parang pagpasok lang sa university ang programming language. You have to inquire first, then you must take an exam, if your qualified, then your in. Yung inquiring ay parang pag-alam ng tamang programming language, yung pagtake ng exam ay parang paglalagay ng mga commands, pag tama ang mga commands and sequence, you will have an output.


_________________________________________________________________________________

Slate

    Ang isheshare ko sa inyo ngayon eh isang programming language na hindi ko magawang pag-aralan dahil sa mahirap idowload at mahirap intindihin ang mga syntaxes. Anyway, kaya ito ang napili ko ay dahil sa unique ang structure ng mga syntaxes nya, di tulad ng iba na halos, derived na lang from older languages.

    Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk-80. Slate syntax is intended to be as familiar as possible to a Smalltalker, for the clarity of messages as phrases. Unlike the Smalltalk family, methods within Slate can be assigned to a signature of objects, instead of being installed on one favored receiver. Slate has also many further expansions of the semantics which enable more concise and natural ways to express solutions to problems.Particular attention is being paid to the design of a fuller and more useful set of libraries than even the usual Smalltalk set, for collections, streams, meta-level protocols, concurrency, and exception-handling, among others.


Prototypes
Define methods, slots, instantiation, and inheritance per object.
Dynamic
Write code interactively instead of following the edit-save-compile-debug cycle. Update objects and their traits live without restarting.
Multiple Dispatching
Specialize methods for each argument, not just an “owner”; behavior is cooperative.
Multiple Inheritance
Even write your own function to customize the delegation list if you prefer.
Optional Keywords
Pass along any optional local bindings with a message or to a block.
Safe and Garbage Collected
Write code without worrying about corrupting the executable or having to free memory.
Collections
Aggregate, transform, and fold your data into different shapes easily and generically.
Streams
Quickly plug together flexible stream facilities to and from many data types, with the same power of collections.
Exception-Handling
Handle exceptional situations powerfully with live customizable condition and restart objects.
Macros
Manipulate expression trees dynamically and abstractly with language support.
The Environment
Slate is also a “living” environment, and is intended to support the full services that one would expect from an general programming language, including GUI and FFI support.
Persistent World
The state of the Slate object system can be snapshot, saved, and reloaded reliably as image files.
Persistent Connections
Connections to the outside world (files, sockets, native libraries, windows) close and re-open transparently across startups and shutdowns. 


    Eto yung isang sample ng syntax ng Slate:

$ ./slate -i slate.image - based dun sa tutorial, this syntax was used to start slate with an image. . . 
medyo bothered lang ako kasi bakit image kagad ang simula, pero anyway, yan ang sabi eh..hahaha...

   After that, the code will turn out like this naman:

slate-1>  - parang this serves as a marker for the user to input the syntaxes na gusto nya pang ilagay.

you must put spaces between slate commands and values for variables. . . 

Eto pa ang mga set ng madudugong syntaxes, sumakit ang ulo ko dito eh...

slate-4> lobby 
lobby 
slate-5> lobby slotNames. 
{#VM. #Types. #C. #globals. #systems. #Mixins. #prototypes}

pero eto ang mas madugo, skip ko na kasi medyo magulo na talaga intindihin...

slate-8> lobby addSlot: #x 
Defining accessor 'x' on: NoRole 
Defining accessor 'x:' on: NoRole, NoRole 
Nil 
slate-9> lobby addSlot: #y valued: 3. 
Defining accessor 'y' on: NoRole 
Defining accessor 'y:' on: NoRole, NoRole
slate-10> lobby define: #z. 
Defining accessor 'z' on: NoRole 
Defining accessor 'printName' on: 'z traitsWindow' 
Defining accessor 'printName' on: 'z traits' ("z traitsWindow")

_________________________________________________________________________________

Conclusion. . 

   After trying to understand those syntaxes, isa lang ang nasabi ko, kelangan ko pang mag-aral ng maigi sa iba pang syntaxes, in short, pang-imbang programming language ang SLATE. . .hahaha

   Sa tingin ko, medyo 'spoon feed' ang SLATE, kasi you have to 'REALLY SPECIFY' the things that you want to do with it. . .

_________________________________________________________________________________

Yan na lang muna sa ngayon, thank you!!

_________________________________________________________________________________

References:
http://slatelanguage.org/
http://www.enotes.com/topic/Slate_(programming_language)
http://www.scriptol.com/programming/list-programming-languages.php#language-s
http://slatelanguage.org/tutorial/
http://www.computerhope.com/jargon/p/proglang.htm

_________________________________________________________________________________
Joshua Antonelli C. Austria
200911109

Walang komento:

Mag-post ng isang Komento