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.
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
3
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