4

I'm interested in finding a concatenative language interpreter in Java. Ideally, it should satisfy the following conditions:

  • It has an interpreter, not (only) a bytecode compiler for JVM.
  • The language itself has decent documentation, not only a few examples and a "I'll document the rest someday" notice.
  • The project is not completely abandoned.

In short, I'm looking for a reasonably "alive" concatenative language that can be embedded into Java easily.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Vojislav Stojkovic
  • 8,043
  • 4
  • 35
  • 48
  • What is a concatenative language? – Cem Catikkas May 27 '10 at 04:50
  • I'm curious... why "an interpreter, not (only) a bytecode compiler"... what is the benefit of "interpreter" ? why a bytecode compiler should not be an "interpreter" ?.... why something like groovy isn't ok for you ? Sorry for all these questions to answer your question :-( – Istao May 27 '10 at 04:55
  • @Cem Catikkas: In a concatenative language, you program by composing functions which operate on a single structure (most commonly a stack), as opposed to applying functions to arguments. Examples of concatenative languages: Forth, Factor, Joy. More information can be found at: http://concatenative.org/ – Vojislav Stojkovic May 27 '10 at 05:07
  • @Istao: The piece of software I'm trying to write will receive data at runtime which tells it how to build a certain structure. This building process can be easily described in a concatenative language. My idea is to transform the input data into the words of a concatenative language and then interpret them. An interpreter is would allow me to: 1) process the data as a stream, instead of waiting to receive all and then compile it, and 2) avoid execution of arbitrary concatenative code more easily (no need to sanitize input if I just impose severe limits on what the interpreter can do/access) – Vojislav Stojkovic May 27 '10 at 05:14

3 Answers3

2

I was looking for something similar today and ran into JKat.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Binil Thomas
  • 13,699
  • 10
  • 57
  • 70
1

I found JOLIE. It says:

JOLIE is a service-oriented programming language, that you can use to build powerful orchestrators. An orchestrator is a software application that composes other services in order to obtain new functionalities. Writing an orchestrator means to deal with the composition of service communications

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Parth
  • 1,281
  • 8
  • 17
1

7th is developed as a java script engine named "7th". There are examples how to interact between 7th and the calling Java™ program. Write Engine engine = Engine.create(); in Your Java program. Execute Your 7th program by sending it to the engine in the way: engine.eval(˂Your 7th program here˃).

Kaplan
  • 11
  • 1