| CoJava: a unified language for simulation and optimization |
| Full text |
Pdf
(210 KB)
|
| Source
|
Conference on Object Oriented Programming Systems Languages and Applications
archive
Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
table of contents
San Diego, CA, USA
DEMONSTRATION SESSION: OOPSLA demonstrations
table of contents
Pages: 194 - 195
Year of Publication: 2005
ISBN:1-59593-193-7
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 4, Downloads (12 Months): 20, Citation Count: 1
|
|
|
ABSTRACT
We have proposed and implemented, and will demonstrate, the language CoJava, which offers both the advantages of simulation-like process modeling, and the capabilities of true decision optimization.By design, the syntax of CoJava is identical to the programming language Java, extended with special constructs to (1) make a non-deterministic choice of a numeric value, (2) assert a constraint, and (3) designate a program variable as the objective to be optmized.A CoJava program thus defines a set of nondeterministic execution paths, each being a program run with specific selection of values in the choice statements. The semantics of CoJava interprets a program as an optimal nondeterministic execution path, namely, a path that (1) satisfies the range conditions in the choice statements, (2) satisfies the assert-constraint statements, and (3) produces the optimal value in a designated program variable, among all execution paths that satisfy (1) and (2). Thus, to run a CoJava program amounts to first finding an optimal execution path, and then procedurally executing it.To find an optimal non-deterministic execution path, we have developed a reduction to a standard constraint optimization formulation. Constraint variables represent values in program variables that can be created at any state of a non-deterministic execution. Constraints encode transitions, triggered by CoJava statements, from one program state to the next.Based on the reduction, we have developed a CoJava constraint compiler. The compiler operates by first translating the Java program into a similar Java program in which the primitive numeric operators and data types are replaced by symbolic constraint operators and data types. This intermediate java program functions as a constraint generator. This program is compiled and executed to produce a symbolic decision problem. The decision problem is then submitted to an external optimization solver.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
 |
3
|
|
| |
4
|
|
 |
5
|
Bjorn N. Freeman-Benson, Kaleidoscope: mixing objects, constraints, and imperative programming, Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, p.77-88, September 1990, Ottawa, Canada
|
| |
6
|
|
| |
7
|
|
| |
8
|
|
|