language definition
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3145
Objective Modula-2 1.00 (Language Definition)
Objective Modula-2 programming language is a hybrid between Smalltalk and Modula-2. more>>
Objective Modula-2 programming language is a hybrid between Smalltalk and Modula-2 based on the object model and runtime of Objective-C.
The design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge.
The projects scope encompasses the design of the Objective Modula-2 programming language and the implementation of a compiler to implement it. The initial compiler will generate Objective-C source code.
<<lessThe design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge.
The projects scope encompasses the design of the Objective Modula-2 programming language and the implementation of a compiler to implement it. The initial compiler will generate Objective-C source code.
Download (0.23MB)
Added: 2007-07-21 License: (FDL) GNU Free Documentation License Price:
516 downloads
Language::Functional 0.03
Language::Functional is a Perl module which makes Perl slightly more functional. more>>
Language::Functional is a Perl module which makes Perl slightly more functional.
SYNOPSIS
use Language::Functional :all;
print The first ten primes are: ,
show(take(10, filter { prime(shift) } integers)), "n";
Perl already contains some functional-like functions, such as map and grep. The purpose of this module is to add other functional-like functions to Perl, such as foldl and foldr, as well as the use of infinite lists.
Think as to how you would express the first ten prime numbers in a simple way in your favourite programming language? So the example in the synopsis is a killer app, if you will (until I think up a better one.
The idea is mostly based on Haskell, from which most of the functions are taken. There are a couple of major omissions: currying and types. Lists (and tuples) are simply Perl list references, none of this cons business, and strings are simple strings, not lists of characters.
The idea is to make Perl slightly more functional, rather than completely replace it. Hence, this slots in very well with whatever else your program may be doing, and is very Perl-ish. Other modules are expected to try a much more functional approach.
<<lessSYNOPSIS
use Language::Functional :all;
print The first ten primes are: ,
show(take(10, filter { prime(shift) } integers)), "n";
Perl already contains some functional-like functions, such as map and grep. The purpose of this module is to add other functional-like functions to Perl, such as foldl and foldr, as well as the use of infinite lists.
Think as to how you would express the first ten prime numbers in a simple way in your favourite programming language? So the example in the synopsis is a killer app, if you will (until I think up a better one.
The idea is mostly based on Haskell, from which most of the functions are taken. There are a couple of major omissions: currying and types. Lists (and tuples) are simply Perl list references, none of this cons business, and strings are simple strings, not lists of characters.
The idea is to make Perl slightly more functional, rather than completely replace it. Hence, this slots in very well with whatever else your program may be doing, and is very Perl-ish. Other modules are expected to try a much more functional approach.
Download (0.016MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
Plone Language Tool 1.5
Plone Language Tool is a product which allows you to set the available languages in your Plone site. more>>
Plone Language Tool is a product which allows you to set the available languages in your Plone site.
PloneLanguageTool allows you to set the available languages in your Plone site, select various fallback mechanisms, and control the use of flags for language selection and translations.
When installed, a new Plone control panel action will allow you to select various language options, such as the default and list of allowed languages.
PloneLanguageTool is shipped with Plone beginning in version 2.1 and up.
Enhancements:
- Bug fix release included in Plone 2.5.2.
<<lessPloneLanguageTool allows you to set the available languages in your Plone site, select various fallback mechanisms, and control the use of flags for language selection and translations.
When installed, a new Plone control panel action will allow you to select various language options, such as the default and list of allowed languages.
PloneLanguageTool is shipped with Plone beginning in version 2.1 and up.
Enhancements:
- Bug fix release included in Plone 2.5.2.
Download (0.10MB)
Added: 2007-03-28 License: GPL (GNU General Public License) Price:
942 downloads
Russian Language Learning 1.0.1
Russian Language Learning is a Java application that helps you to learn Russian using the Leitner system. more>>
Russian Language Learning is a Java application that helps you to learn Russian using the Leitner system.
Memorizing words and phrases will not only be more efficient, but the system is a joy to use. Each card also has the phrase spoken by a native russian speaker, to help with pronunciation.
The Leitner system is a way of progressively learning words by placing them in stacks. The words you know are placed in stacks seperate from the words that are still troubling you, for more efficient learning.
And there is one other thing about Tanooshka.com language learning. Each set of cards, are the words to a movie, so when youve learned the set of words, you can watch the movie, and understand it! In Russian!
<<lessMemorizing words and phrases will not only be more efficient, but the system is a joy to use. Each card also has the phrase spoken by a native russian speaker, to help with pronunciation.
The Leitner system is a way of progressively learning words by placing them in stacks. The words you know are placed in stacks seperate from the words that are still troubling you, for more efficient learning.
And there is one other thing about Tanooshka.com language learning. Each set of cards, are the words to a movie, so when youve learned the set of words, you can watch the movie, and understand it! In Russian!
Download (10.7MB)
Added: 2006-01-16 License: Freeware Price:
1673 downloads
V language 0.004
V language is a tiny concatenative language implemented for experimentation. more>>
V language is a tiny concatenative language implemented for experimentation.
The source is under Public Domain (un-copyrighted.)
The full featured language is on top of JVM, A native version (in alpha state) is also there in the codebase.
To run it, extract the distribution in any directory and do #gmake run.
gmake
gmake run
V
|
The language is a close relative of postscript, forth and joy. and is stack based. ie:
|2 3 *
=6
|2 3 * 5 +
=11
See status for a tutorial and more info.
The Functions available in V are available in this page: functions
(The releases are out of date and multiple fixes have gone in. Please check out and build rather than use them.)
Example functions in V. getting the roots (with out using the stack shuffling word view)
[quad-formula
[a b c] let
[minisub 0 b -].
[radical b b * 4 a * c * - sqrt].
[divisor 2 a *].
[root1 minisub radical + divisor /].
[root2 minisub radical - divisor /].
root1 root2
].
|2 4 -30 quad-formula ??
=(-5.0 3.0)
using view
[quad-root
[a b c : [0 b - b b * 4 a * c * - sqrt + 2 a * /]] view i
].
|2 4 -30 quad-root ??
=(3)
contrast this with the definition in scheme here
(define quadratic-formula
(lambda (a b c)
(let ([minusb (- 0 b)]
[radical (sqrt (- (* b b) (* 4 ( * a c))))]
[divisor (* 2 a)] )
let ([root1 (/ (+ minusb radical) divisor)]
[root2 (/ (- minusb radical) divisor)])
(cons root1 root2)))))
Definition of Qsort.
[qsort
#definitions
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
#args starts for binrec. notice that 2 arguments (termination condition
#and its result) are on first line.
[small?] []
[split_on_first_element]
#binrec recurses on the result of split_on_first_element before applying joinparts.
[joinparts]
binrec].
Some explanations.
The first and second lines (terminated by .) are internal function definitions
(Notice how qsort is also terminated by .) . is the definition syntax in V.
The first function joinparts
============================
The function joinpart contains just an application of the operator view.
view is list translator. It takes a list of the form [template : result]
then it tries to apply the template to the current stack. If it can be applied on the
stack, then the arguments named in the template are bound to values in stack. The result is then processed, and all the bound elements in result are replaced by their values.
[pivot [*list1] [*list2] : [*list1 pivot *list2]] view expects 3 arguments on the stack,
the first a single element pivot, then two lists list1 and list2.
It returns a list that is composed of elements of list1 followed by pivot
followed by elements of list2 (as defined in result - RHS of :).
ie:
44 [1 2 3] [5 6 7] [pivot [*list1] [*list2] : [*list1 pivot *list2]] view ??
=> [1 2 3 44 5 6 7]
(The function ?? is used to print out the elements in the stack now.)
The second function split_on_first_element
==========================================
The definition is [uncons [>] split&]
The uncons splits a list into the first element and the rest of the list.
ie:
[1 2 3 4 5] uncons ??
=1 [2 3 4 5]
split& takes two arguments, the first is the function F to split a list with,
and the second the list itself. All elements in the list that passes the function F
is put into the first list, and all that do not are put into the second list.
ie:
[1 2 3 4 5 6 7] [4 >] split& ??
=[5 6 7] [1 2 3 4]
The function F can also take an argument from the stack. so this also works.
4 [1 2 3 4 5 6 7] [>] split& ??
=[5 6 7] [1 2 3 4]
Thus the split_on_first_element takes the first element of a list, and split that
list based on that element as a filter.
binrec
=======
binrec expects 4 arguments,
Arg1 is the terminating condition,
Arg2 is the result if the terminating condition is met.
Arg3 is an executable statement that returns two entities.
The entire binrec statement is performed on each of the
two entities until the terminating condition is met.
Arg4 is what to do with the result of the previous statement.
Algorithm.
Here, the small? checks if the list is empty or contains just one element.
if it is, then the result is arg2 - []
ie:
[] small? ??
=true
[1] small? ??
=true
[1 2 3 4] small? ??
=false
split_on_first_element takes is executed on all lists that are larger than size 1
and as explained above, splits them into two based on the first element.
on the resultent lists, the entire qsort is performed again due to binrec.
The last joinparts takes these elements (pivot list1 list2) which are present now
on the stack, and combines them to produce a single sorted list.
A slightly friendlier function (with out the binrec.)
[qsort
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
[small?]
[]
[split_on_first_element [list1 list2 : [list1 qsort list2 qsort joinparts]] view i]
ifte].
The binrec and friends are more powerful than the explicit recursion done above, but for people new to concatenative languages, this kind of recursion may look more intuitive.
Enhancements:
- The language has become relatively stable.
- Lots of bugfixes were made in scope handling.
- Tree operations were added.
- Generic combinators were moved out into a separate library.
<<lessThe source is under Public Domain (un-copyrighted.)
The full featured language is on top of JVM, A native version (in alpha state) is also there in the codebase.
To run it, extract the distribution in any directory and do #gmake run.
gmake
gmake run
V
|
The language is a close relative of postscript, forth and joy. and is stack based. ie:
|2 3 *
=6
|2 3 * 5 +
=11
See status for a tutorial and more info.
The Functions available in V are available in this page: functions
(The releases are out of date and multiple fixes have gone in. Please check out and build rather than use them.)
Example functions in V. getting the roots (with out using the stack shuffling word view)
[quad-formula
[a b c] let
[minisub 0 b -].
[radical b b * 4 a * c * - sqrt].
[divisor 2 a *].
[root1 minisub radical + divisor /].
[root2 minisub radical - divisor /].
root1 root2
].
|2 4 -30 quad-formula ??
=(-5.0 3.0)
using view
[quad-root
[a b c : [0 b - b b * 4 a * c * - sqrt + 2 a * /]] view i
].
|2 4 -30 quad-root ??
=(3)
contrast this with the definition in scheme here
(define quadratic-formula
(lambda (a b c)
(let ([minusb (- 0 b)]
[radical (sqrt (- (* b b) (* 4 ( * a c))))]
[divisor (* 2 a)] )
let ([root1 (/ (+ minusb radical) divisor)]
[root2 (/ (- minusb radical) divisor)])
(cons root1 root2)))))
Definition of Qsort.
[qsort
#definitions
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
#args starts for binrec. notice that 2 arguments (termination condition
#and its result) are on first line.
[small?] []
[split_on_first_element]
#binrec recurses on the result of split_on_first_element before applying joinparts.
[joinparts]
binrec].
Some explanations.
The first and second lines (terminated by .) are internal function definitions
(Notice how qsort is also terminated by .) . is the definition syntax in V.
The first function joinparts
============================
The function joinpart contains just an application of the operator view.
view is list translator. It takes a list of the form [template : result]
then it tries to apply the template to the current stack. If it can be applied on the
stack, then the arguments named in the template are bound to values in stack. The result is then processed, and all the bound elements in result are replaced by their values.
[pivot [*list1] [*list2] : [*list1 pivot *list2]] view expects 3 arguments on the stack,
the first a single element pivot, then two lists list1 and list2.
It returns a list that is composed of elements of list1 followed by pivot
followed by elements of list2 (as defined in result - RHS of :).
ie:
44 [1 2 3] [5 6 7] [pivot [*list1] [*list2] : [*list1 pivot *list2]] view ??
=> [1 2 3 44 5 6 7]
(The function ?? is used to print out the elements in the stack now.)
The second function split_on_first_element
==========================================
The definition is [uncons [>] split&]
The uncons splits a list into the first element and the rest of the list.
ie:
[1 2 3 4 5] uncons ??
=1 [2 3 4 5]
split& takes two arguments, the first is the function F to split a list with,
and the second the list itself. All elements in the list that passes the function F
is put into the first list, and all that do not are put into the second list.
ie:
[1 2 3 4 5 6 7] [4 >] split& ??
=[5 6 7] [1 2 3 4]
The function F can also take an argument from the stack. so this also works.
4 [1 2 3 4 5 6 7] [>] split& ??
=[5 6 7] [1 2 3 4]
Thus the split_on_first_element takes the first element of a list, and split that
list based on that element as a filter.
binrec
=======
binrec expects 4 arguments,
Arg1 is the terminating condition,
Arg2 is the result if the terminating condition is met.
Arg3 is an executable statement that returns two entities.
The entire binrec statement is performed on each of the
two entities until the terminating condition is met.
Arg4 is what to do with the result of the previous statement.
Algorithm.
Here, the small? checks if the list is empty or contains just one element.
if it is, then the result is arg2 - []
ie:
[] small? ??
=true
[1] small? ??
=true
[1 2 3 4] small? ??
=false
split_on_first_element takes is executed on all lists that are larger than size 1
and as explained above, splits them into two based on the first element.
on the resultent lists, the entire qsort is performed again due to binrec.
The last joinparts takes these elements (pivot list1 list2) which are present now
on the stack, and combines them to produce a single sorted list.
A slightly friendlier function (with out the binrec.)
[qsort
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
[small?]
[]
[split_on_first_element [list1 list2 : [list1 qsort list2 qsort joinparts]] view i]
ifte].
The binrec and friends are more powerful than the explicit recursion done above, but for people new to concatenative languages, this kind of recursion may look more intuitive.
Enhancements:
- The language has become relatively stable.
- Lots of bugfixes were made in scope handling.
- Tree operations were added.
- Generic combinators were moved out into a separate library.
Download (0.10MB)
Added: 2007-07-25 License: MIT/X Consortium License Price:
824 downloads
X Language 0.7.1
X Language is a programming language. more>>
X Language is a new multi-syntax programming including a portable set of APIs to create console or graphical applications runnable on many platforms (UNIX/X11, Win32, ...). X Language comes with an interpreter, a compiler and a debugger.
X Language is publicly available under the GPL.
Installation
- tar -xzf xlang-0.7.1.tar.gz
- cd xlang-0.7.1
- ./configure
- make
- make install
- ./xlc calc.xc
Enhancements:
- Adding LANG/MATH specifications
- Adding SYS (basic) specifications
- Start implementing the SCR API
<<lessX Language is publicly available under the GPL.
Installation
- tar -xzf xlang-0.7.1.tar.gz
- cd xlang-0.7.1
- ./configure
- make
- make install
- ./xlc calc.xc
Enhancements:
- Adding LANG/MATH specifications
- Adding SYS (basic) specifications
- Start implementing the SCR API
Download (0.35MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1646 downloads
Language::Frink::Eval 0.02
Language::Frink::Eval is a Perl module that acts as a simple wrapper around the Frink interpreter written by Alan Eliasen. more>>
Language::Frink::Eval is a Perl module that acts as a simple wrapper around the Frink interpreter written by Alan Eliasen. As such, it requires a local copy of the Java interpreter and the frink.jar file. For more information on Frink, please see http://futureboy.homeip.net/frinkdocs/.
This module works by starting a JVM as a child process, and sending Frink expressions to it via a pipe, and retrieving the results the same way. Also, this module has the ability to function in a restricted mode it attempts to filter "dangerous" expressions, such as functions that read files from local disk, the network, and also commands that may persistantly change the interpreter state.
The list of "dangerous" functions and expressions was derived by reading the Frink documentation, and probably is not complete. If you find commands that get through the filter that should, please report them.
The following functions are not allowed in restricted mode:
lines[]
read[]
eval[]
input[]
select[]
callJava[]
newJava[]
staticJava[]
The following language constructs are not allowed in restricted mode:
Regexes
Function Declarations
Unit display format
Loops
Time display format
Procedure blocks
File inclusion
Class Declaration
<<lessThis module works by starting a JVM as a child process, and sending Frink expressions to it via a pipe, and retrieving the results the same way. Also, this module has the ability to function in a restricted mode it attempts to filter "dangerous" expressions, such as functions that read files from local disk, the network, and also commands that may persistantly change the interpreter state.
The list of "dangerous" functions and expressions was derived by reading the Frink documentation, and probably is not complete. If you find commands that get through the filter that should, please report them.
The following functions are not allowed in restricted mode:
lines[]
read[]
eval[]
input[]
select[]
callJava[]
newJava[]
staticJava[]
The following language constructs are not allowed in restricted mode:
Regexes
Function Declarations
Unit display format
Loops
Time display format
Procedure blocks
File inclusion
Class Declaration
Download (0.22MB)
Added: 2007-06-07 License: Perl Artistic License Price:
869 downloads
Language::XSB 0.14
Language::XSB is a Perl module that allows you to use XSB from Perl. more>>
Language::XSB is a Perl module that allows you to use XSB from Perl.
SYNOPSIS
use Language::XSB :query;
use Language::Prolog::Types::overload;
use Language::Prolog::Sugar vars=>[qw(X Y Z)],
functors=>{equal => =},
functors=>[qw(is)],
chains=>{plus => +,
orn => ;};
xsb_set_query( equal(X, 34),
equal(Y, -12),
is(Z, plus( X,
Y,
1000 )));
while(xsb_next()) {
printf("X=%d, Y=%d, Z=%dn",
xsb_var(X), xsb_var(Y), xsb_var(Z))
}
print join("n", xsb_find_all(orn(equal(X, 27),
equal(X, 45)), X)), "n";
ABSTRACT
Language::XSB provides a bidirectional interface to XSB (http://xsb.sourceforge.net/).
From the XSB manual:
XSB is a research-oriented Logic Programming and Deductive
Database System developed at SUNY Stony Brook. In addition to
providing all the functionality of Prolog, it contains
features not usually found in Logic Programming Systems such
as evaluation according to the Well Founded Semantics through
full SLG resolution, constraint handling for tabled programs,
a compiled HiLog implementation, unification factoring and
interfaces to other systems such as ODBC, C, Java, Perl, and
Oracle
This package implements a bidirectional interface to XSB, thats means that Perl can call XSB that can call Perl back that can call XSB again, etc.:
Perl -> XSB -> Perl -> XSB -> ...
(Unfortunately, you have to start from Perl, XSB->Perl->... is not possible.)
The interface to XSB is based on the objects created by the package Language::Prolog::Types. You can also use Language::Prolog::Sugar package, a front end for the types package to improve the look of your source (just some syntactic sugar).
To make queries to XSB you have to set first the query term with the function xsb_set_query, and then use xsb_next and xsb_result to iterate over it and get the results back.
Only one query can be open at any time, unless when Perl is called back from XSB, but then the old query is not visible.
<<lessSYNOPSIS
use Language::XSB :query;
use Language::Prolog::Types::overload;
use Language::Prolog::Sugar vars=>[qw(X Y Z)],
functors=>{equal => =},
functors=>[qw(is)],
chains=>{plus => +,
orn => ;};
xsb_set_query( equal(X, 34),
equal(Y, -12),
is(Z, plus( X,
Y,
1000 )));
while(xsb_next()) {
printf("X=%d, Y=%d, Z=%dn",
xsb_var(X), xsb_var(Y), xsb_var(Z))
}
print join("n", xsb_find_all(orn(equal(X, 27),
equal(X, 45)), X)), "n";
ABSTRACT
Language::XSB provides a bidirectional interface to XSB (http://xsb.sourceforge.net/).
From the XSB manual:
XSB is a research-oriented Logic Programming and Deductive
Database System developed at SUNY Stony Brook. In addition to
providing all the functionality of Prolog, it contains
features not usually found in Logic Programming Systems such
as evaluation according to the Well Founded Semantics through
full SLG resolution, constraint handling for tabled programs,
a compiled HiLog implementation, unification factoring and
interfaces to other systems such as ODBC, C, Java, Perl, and
Oracle
This package implements a bidirectional interface to XSB, thats means that Perl can call XSB that can call Perl back that can call XSB again, etc.:
Perl -> XSB -> Perl -> XSB -> ...
(Unfortunately, you have to start from Perl, XSB->Perl->... is not possible.)
The interface to XSB is based on the objects created by the package Language::Prolog::Types. You can also use Language::Prolog::Sugar package, a front end for the types package to improve the look of your source (just some syntactic sugar).
To make queries to XSB you have to set first the query term with the function xsb_set_query, and then use xsb_next and xsb_result to iterate over it and get the results back.
Only one query can be open at any time, unless when Perl is called back from XSB, but then the old query is not visible.
Download (0.014MB)
Added: 2007-06-12 License: Perl Artistic License Price:
867 downloads
ADML language 1.1.4
ADML language is a server-side scripting language with Mysql database suport. more>>
ADML language is a server-side scripting language with Mysql database suport.
About Apache:
Apache HTTP Server is a free software/open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell NetWare and other platforms. Apache is notable for playing a key role in the initial growth of the World Wide Web, and continues to be the most popular web server in use, serving as the reference platform against which other web servers are designed and judged.
Apache features highly configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs) which permit easier, more intuitive configuration of the server.
The Apache HTTP Server is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.
<<lessAbout Apache:
Apache HTTP Server is a free software/open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell NetWare and other platforms. Apache is notable for playing a key role in the initial growth of the World Wide Web, and continues to be the most popular web server in use, serving as the reference platform against which other web servers are designed and judged.
Apache features highly configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs) which permit easier, more intuitive configuration of the server.
The Apache HTTP Server is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.
Download (0.060MB)
Added: 2006-04-04 License: GPL (GNU General Public License) Price:
1299 downloads
Language::Basic::Expression 1.44
Language::Basic::Expression is a Perl package to handle string, numeric, and boolean expressions. more>>
Language::Basic::Expression is a Perl package to handle string, numeric, and boolean expressions.
SYNOPSIS
See Language::Basic for the overview of how the Language::Basic module works. This pod page is more technical.
# Given an LB::Token::Group, create an expression I parse it
my $exp = new LB::Expression::Arithmetic $token_group;
# Whats the value of the expression?
print $exp->evaluate;
# Perl equivalent of the BASIC expression
print $exp->output_perl;
Expressions are basically the building blocks of Statements, in that every BASIC statement is made up of keywords (like GOTO, TO, STEP) and expressions. So expressions include not just the standard arithmetic and boolean expressions (like 1 + 2), but also lvalues (scalar variables or arrays), functions, and constants. See Language::Basic::Syntax for details on the way expressions are built.
BASIC expressions are represented by various objects of subclasses of Language::Basic::Expression. Most LB::Expressions are in turn made up of other LB::Expressions. For example an LBE::Arithmetic may be made up of two LBE::Multiplicative and a "plus". "Atoms" (indivisible LBEs) include things like LBE::Constants and LBE::Lvalues (variables).
<<lessSYNOPSIS
See Language::Basic for the overview of how the Language::Basic module works. This pod page is more technical.
# Given an LB::Token::Group, create an expression I parse it
my $exp = new LB::Expression::Arithmetic $token_group;
# Whats the value of the expression?
print $exp->evaluate;
# Perl equivalent of the BASIC expression
print $exp->output_perl;
Expressions are basically the building blocks of Statements, in that every BASIC statement is made up of keywords (like GOTO, TO, STEP) and expressions. So expressions include not just the standard arithmetic and boolean expressions (like 1 + 2), but also lvalues (scalar variables or arrays), functions, and constants. See Language::Basic::Syntax for details on the way expressions are built.
BASIC expressions are represented by various objects of subclasses of Language::Basic::Expression. Most LB::Expressions are in turn made up of other LB::Expressions. For example an LBE::Arithmetic may be made up of two LBE::Multiplicative and a "plus". "Atoms" (indivisible LBEs) include things like LBE::Constants and LBE::Lvalues (variables).
Download (0.051MB)
Added: 2006-09-29 License: Perl Artistic License Price:
1121 downloads
Language::Logo 1.000
Language::Logo Perl module is an implementation of the Logo programming language. more>>
Language::Logo Perl module is an implementation of the Logo programming language.
SYNOPSIS
use Language::Logo;
my $lo = new Logo(update => 20);
$lo->command("setxy 250 256");
$lo->command("color yellow");
$lo->command("pendown");
# Draw a circle
for (my $i = 0; $i < 360; $i += 10) {
$lo->command("forward 10; right 10");
}
$lo->disconnect("Finished...")
This module provides an implementation of the Logo programming language, with all of the necessary drawing primitives in a Tk Canvas. The Canvas object is also referred to as the "screen".
The first construction of a Language::Logo object causes a server to be created in a separate process; this server then creates a Tk GUI with a Tk::Canvas for use by the clients "turtle", and responds to all requests from the clients commands. In this way, multiple clients may be constructed simultaneously -- each one with its own "turtle".
In this first release, not all of the Logo language is implemented. Rather, the primary commands available are those which directly affect the turtle, and are related to drawing on the screen. The intent is to use the Logo in conjunction with Perl as a sort of "hybrid" language; Perl us used as the higher-level language layer through which all loop constructs, conditionals, and data-manipulation is done. This allows for a substantial level of programming power.
<<lessSYNOPSIS
use Language::Logo;
my $lo = new Logo(update => 20);
$lo->command("setxy 250 256");
$lo->command("color yellow");
$lo->command("pendown");
# Draw a circle
for (my $i = 0; $i < 360; $i += 10) {
$lo->command("forward 10; right 10");
}
$lo->disconnect("Finished...")
This module provides an implementation of the Logo programming language, with all of the necessary drawing primitives in a Tk Canvas. The Canvas object is also referred to as the "screen".
The first construction of a Language::Logo object causes a server to be created in a separate process; this server then creates a Tk GUI with a Tk::Canvas for use by the clients "turtle", and responds to all requests from the clients commands. In this way, multiple clients may be constructed simultaneously -- each one with its own "turtle".
In this first release, not all of the Logo language is implemented. Rather, the primary commands available are those which directly affect the turtle, and are related to drawing on the screen. The intent is to use the Logo in conjunction with Perl as a sort of "hybrid" language; Perl us used as the higher-level language layer through which all loop constructs, conditionals, and data-manipulation is done. This allows for a substantial level of programming power.
Download (0.016MB)
Added: 2007-07-30 License: Perl Artistic License Price:
830 downloads
Fawlty Language 0.70
Fawlty Language is an array-oriented interactive programming language for scientific data processing and visualization. more>>
. Its syntax is almost identical to that of the Interactive Data Language (IDL).
Main features:
- all language elements are supported
- multithreaded operators
- array operations use MMX/SSE/SSE2, if available
- module profiling
- line profiling
- about 300 library functions (more or less usable)
- true-color (24 bit) direct graphics devices: X, WIN, PS, PDF, Z
- run-time performance: for many programs, FL is faster than IDL (eg. the empty loop is three times faster in FL :-)
Installation:
- create a directory (INSTDIR), where you want to install FL
- unpack the archive into this directory
- create an FL_DIR environment variable, which points to INSTDIR/fl/fl_0.61
- run FL_DIR/bin/fl
Enhancements:
- This release introduces Distributed FL, and can be started as a TCP/IP daemon (Linux only), waiting for requests from other hosts (masters) and working for them as a slave.
<<lessMain features:
- all language elements are supported
- multithreaded operators
- array operations use MMX/SSE/SSE2, if available
- module profiling
- line profiling
- about 300 library functions (more or less usable)
- true-color (24 bit) direct graphics devices: X, WIN, PS, PDF, Z
- run-time performance: for many programs, FL is faster than IDL (eg. the empty loop is three times faster in FL :-)
Installation:
- create a directory (INSTDIR), where you want to install FL
- unpack the archive into this directory
- create an FL_DIR environment variable, which points to INSTDIR/fl/fl_0.61
- run FL_DIR/bin/fl
Enhancements:
- This release introduces Distributed FL, and can be started as a TCP/IP daemon (Linux only), waiting for requests from other hosts (masters) and working for them as a slave.
Download (3.5MB)
Added: 2007-06-14 License: Free To Use But Restricted Price:
866 downloads
Apache::Language 0.14
Apache::Language is a Perl transparent language support for Apache modules and mod_perl scripts. more>>
Apache::Language is a Perl transparent language support for Apache modules and mod_perl scripts.
SYNOPSIS
In YourModule.pm:
sub handler {
my $r = shift;
use Apache::Language;
my $lang = Apache::Language->new($extra_args);
#$lang is now a hash ref that will automacigally pick the right language
print $lang->{Error01} if exists $lang->{Error01};
foreach ( keys %$lang ){
print "$_ is " . $lang->{$_};
}
[...]
}
The goal of this module is to provide a simple way for mod_perl module writers to include support for multiple language requests.
This is version 0.03, and its a complete rewrite from the ground-up of the previous release. Its still backward-compatible with the other releases, but now its much more advanced.
An Apache::Language object acts like a language-aware hash. It stores key/language/values triplets. Using the Accept-Language: field sent by the web-client, it can pick the best fit language for that specific client. Its usage is transparent and should prove to be quite convenient (and hopefully, efficient).
The method used to store/fetch information is now completely modular and will allow easy creation of new storage methods thru a simple API (see the API section).
<<lessSYNOPSIS
In YourModule.pm:
sub handler {
my $r = shift;
use Apache::Language;
my $lang = Apache::Language->new($extra_args);
#$lang is now a hash ref that will automacigally pick the right language
print $lang->{Error01} if exists $lang->{Error01};
foreach ( keys %$lang ){
print "$_ is " . $lang->{$_};
}
[...]
}
The goal of this module is to provide a simple way for mod_perl module writers to include support for multiple language requests.
This is version 0.03, and its a complete rewrite from the ground-up of the previous release. Its still backward-compatible with the other releases, but now its much more advanced.
An Apache::Language object acts like a language-aware hash. It stores key/language/values triplets. Using the Accept-Language: field sent by the web-client, it can pick the best fit language for that specific client. Its usage is transparent and should prove to be quite convenient (and hopefully, efficient).
The method used to store/fetch information is now completely modular and will allow easy creation of new storage methods thru a simple API (see the API section).
Download (0.015MB)
Added: 2006-10-12 License: Perl Artistic License Price:
1108 downloads
Simple Machine Language interpreter
Simple Machine Language interpreter is a simple machine language interpreter. more>>
SML is a "toy" machine language intended to teach basic processor concepts. This website contains an explanation and definition of SML, as well as an interpreter and example SML programs. GPLd source code for the interpreter is available, as well as binaries for Windows and Linux.
A machine language defines a set of instructions that a CPU can execute to perform operations. In other words, a machine language defines what you can do with your computer. Modern processors have very complex instruction sets; however, the simple language described here can give you an understanding of what is happening "under the hood" with your computer.
Machine language is the actual data that is directly run by the processor. Writing a program in machine language can therefore be advantageous if you need to save space or highly optimize your code. However, machine language is also not portable and can be difficult to understand and maintain.
Therefore, almost all code is now written in a higher level language, such as C, C++, Java, or scripting languages such as shell or perl. These languages all have their advantages and disadvantages as well, such as varying levels of portability, maintainability, scalability, and execution speed.
One level higher than machine language is assembly language. Assembly language is basically readable machine language. Instead of writing out the code bit-by-bit, you write out the code as a sequence of human readable instructions, which are then compiled almost directly into machine language.
Assembly language is almost always used instead of machine language when such a direct level of control is needed. For example, some games implement part of their code in assembly in order to maximize execution speed. Assembly can be "inlined" into some higher level languages, like C. This means that the assembly is defined as a callable procedure from within the C code.
<<lessA machine language defines a set of instructions that a CPU can execute to perform operations. In other words, a machine language defines what you can do with your computer. Modern processors have very complex instruction sets; however, the simple language described here can give you an understanding of what is happening "under the hood" with your computer.
Machine language is the actual data that is directly run by the processor. Writing a program in machine language can therefore be advantageous if you need to save space or highly optimize your code. However, machine language is also not portable and can be difficult to understand and maintain.
Therefore, almost all code is now written in a higher level language, such as C, C++, Java, or scripting languages such as shell or perl. These languages all have their advantages and disadvantages as well, such as varying levels of portability, maintainability, scalability, and execution speed.
One level higher than machine language is assembly language. Assembly language is basically readable machine language. Instead of writing out the code bit-by-bit, you write out the code as a sequence of human readable instructions, which are then compiled almost directly into machine language.
Assembly language is almost always used instead of machine language when such a direct level of control is needed. For example, some games implement part of their code in assembly in order to maximize execution speed. Assembly can be "inlined" into some higher level languages, like C. This means that the assembly is defined as a callable procedure from within the C code.
Download (0.22MB)
Added: 2005-04-14 License: GPL (GNU General Public License) Price:
1668 downloads
Open Dice Language 1.5
Open Dice Language project is a language for describing dice rolls. more>>
Open Dice Language project is a language for describing dice rolls.
Open Dice Language is a language for describing dice rolls.
The language is nearly identical to what you see in most role-playing game texts (e.g., "1d20"). It provides several interfaces to the language.
To run in CLI interface mode:
# pushd $ODL_HOME
# java -jar ODL.jar
To run as Widget:
build using `ant widget`
widget is now installed in users widget directory
<<lessOpen Dice Language is a language for describing dice rolls.
The language is nearly identical to what you see in most role-playing game texts (e.g., "1d20"). It provides several interfaces to the language.
To run in CLI interface mode:
# pushd $ODL_HOME
# java -jar ODL.jar
To run as Widget:
build using `ant widget`
widget is now installed in users widget directory
Download (0.49MB)
Added: 2007-01-08 License: BSD License Price:
1019 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above language definition search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed