GithubHelp home page GithubHelp logo

bonzini / smalltalk Goto Github PK

View Code? Open in Web Editor NEW
132.0 18.0 27.0 11.25 MB

GNU Smalltalk

Home Page: http://smalltalk.gnu.org/

License: GNU General Public License v2.0

Perl 2.17% Shell 3.18% Smalltalk 47.97% JavaScript 0.10% C 41.66% Objective-C 0.07% C++ 2.89% Emacs Lisp 0.76% Ruby 1.20%

smalltalk's Introduction

   GNU Smalltalk is an implementation that closely follows the
Smalltalk-80 language as described in the book `Smalltalk-80: the
Language and its Implementation' by Adele Goldberg and David Robson.

   The Smalltalk programming language is an object oriented
programming language.  This means, for one thing, that when
programming you are thinking of not only the data that an object
contains, but also of the operations available on that object.  The
object's data representation capabilities and the operations available
on the object are "inseparable"; the set of things that you can do
with an object is defined precisely by the set of operations, which
Smalltalk calls "methods", that are available for that object.  You
cannot even examine the contents of an object from the outside.  To an
outsider, the object is a black box that has some state and some
operations available, but that's all you know.

   In the Smalltalk language, everything is an object.  This includes
numbers, executable procedures (methods), stack frames (called method
contexts or block contexts), etc.  Each object is an "instance" of a
"class".  A class can be thought of as a datatype and the set of
functions that operate on that datatype.  An instance is a particular
variable of that datatype. When you want to perform an operation on an
object, you send it a "message", and the object performs an operation
that corresponds to that message.

   Unlike other Smalltalks (including Smalltalk-80), GNU Smalltalk
emphasizes Smalltalk's rapid prototyping features rather than the
graphical and easy-to-use nature of the programming environment (did
you know that the first GUIs ran under Smalltalk?).  The availability
of a large body of system classes, once you learn them, makes it
pretty easy to write complex programs which are usually a task for the
so called "scripting languages".  Therefore, even though we have a
nice GUI environment including a class browser, the goal of the GNU
Smalltalk project is currently to produce a complete system to be used
to write your scripts in a clear, aesthetically pleasing, and
philosophically appealing programming language.

   An example of what can be obtained with Smalltalk in this novel way
can be found in the manual's class reference.  That part of the manual
is entirely generated by a Smalltalk program, starting from the source
code for the system classes as distributed together with the system.

   Oh... of course ;-) GNU Smalltalk has bugs.  And of course I like
to hear from people who have something to say regarding it. So bug
reports, suggestions, help, advices, source code contributions are all
welcome.  All you have to do is send mail to the GNU Smalltalk mailing
list, at [email protected]. Answer is "almost" guaranteed.

smalltalk's People

Contributors

bonzini avatar dmatveev avatar indeyets avatar jakubjelinek avatar jfitzell avatar komputikisto avatar leeduhem avatar leledumbo avatar lm avatar markam avatar masatake avatar mathk avatar mnsanghvi avatar nicolaspetton avatar nrw505 avatar oblanc2 avatar s11001001 avatar samueltardieu avatar slattarini avatar stefanizota avatar stefankrecher avatar swsch avatar tgg avatar tonyg avatar zecke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smalltalk's Issues

Improve package.xml with large project

I am working on a large project with lot of directories
and the package.xml becomes messy:

[fileinjavascript/initialization/SystemInitialization.st[/filein]
[filein]javascript/type/Extensions.st[/filein]
...
[filein]javascript/ast/Extensions.st[/filein]
[filein]javascript/ast/JSAstNode.st[/filein]
[filein]javascript/ast/JSFunction.st[/filein]
[filein]javascript/ast/JSParenthesis.st[/filein]
[filein]javascript/ast/literals/Extensions.st[/filein]
...

I propose to add a path tag with the full path, and why not adding tag for manipulating the path
like a parentDir tag or cd tag

[path]javascript/type/[/path]
[filein]Extensions.st[/filein]
...
[path]javascript/ast/[/path]
[filein]Extensions.st[/filein]
[filein]JSAstNode.st[/filein]
[filein]JSFunction.st[/filein]
[filein]JSParenthesis.st[/filein]
[cd]literals/[/cd]
[filein]Extensions.st[/filein]
...

What's your opinion about that?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.