Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
GAMS: a framework for the management of scientific software
ACM Transactions on Mathematical Software (TOMS)
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A modeling language for mathematical programming
Management Science
Kaleidoscope: mixing objects, constraints, and imperative programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Search and imperative programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Introduction to SILK and Java-based simulation
Proceedings of the 30th conference on Winter simulation
Object oriented programming languages for developing simulation-related software
WSC' 90 Proceedings of the 22nd conference on Winter simulation
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIMULA: an ALGOL-based simulation language
Communications of the ACM
The Java Language Specification
The Java Language Specification
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Modelica - A Unified Object-Oriented Language for System Modelling and Simulation
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
CLAIRE: combining sets, search and rules to better express algorithms
Theory and Practice of Logic Programming
Views and iterators for generic constraint implementations
CSCLP'05 Proceedings of the 2005 Joint ERCIM/CoLogNET international conference on Constraint Solving and Constraint Logic Programming
Model-driven constraint programming
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Optimisation modelling for software developers
CP'12 Proceedings of the 18th international conference on Principles and Practice of Constraint Programming
International Journal of Decision Support System Technology
Optimizing Procurement Decisions in Networked Virtual Enterprises
International Journal of Decision Support System Technology
Supporting Agile Organizations with a Decision Guidance Query Language
Journal of Management Information Systems
Hi-index | 0.00 |
We have proposed and implemented the language CoJava, which offers both the advantages of simulation-like process modeling in Java, 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 nondeterministic choice of a numeric value, (2) assert a constraint, and (3) designate a program variable as the objective to be optimized. A sequence of specific selections in nondeterministic choice statements corresponds to an execution path. We define an optimal execution path as one 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). The semantics of a CoJava program amounts to first finding an optimal execution path, and then procedurally executing it. To find an optimal execution path, the implemented CoJava compiler reduces the problem to a standard optimization formulation, and then solves it on an external solver. Then, the CoJava program is run as a Java program, where the choice statements select the found optimal values, and the assert and optimization statements are ignored. We illustrate the usage and semantics of CoJava using a simple supply-chain example, in which elastic demand, a manufacturer and a supplier are modeled as Java classes.