## Computer Programming & Programming Language

A programming paradigm is a fundamental style of computer programming. Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) and the steps that compose a computation (assignment, evaluation, continuations, data flows, etc.).

Different programming languages advocate different programming paradigms. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, Java, C#, Visual Basic, Common Lisp, Scheme, Perl, Python, Ruby, Oz and F Sharp).

1st generation: binary code

2nd generation: assembly languages

3rd generation (the first described as high-level languages): procedural languages, object-oriented languages

4th generation: declarative programming (e.g. constraint programming, functional programming, logical programming)

**Algebraic Modeling Languages (AML)** are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems).[1] One particular advantage of some algebraic modeling languages like AIMMS[1], AMPL[2] or GAMS[1] is the similarity of their syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.

An AML does not solve those problems directly; instead, it calls appropriate external algorithms to obtain a solution. These algorithms are called solvers and can handle certain kind of mathematical problems like:

linear problems

integer problems

(mixed integer) quadratic problems

mixed complementarity problems

mathematical programs with equilibrium constraints

constrained nonlinear systems

general nonlinear problems

non-linear programs with discontinuous derivatives

nonlinear integer problems

global optimization problems

stochastic optimization problems

## Leave a Reply