top of page
  • tecqusition

Brian Wilson Kernighan (CO-AUTHOR OF THE AWK AND AMPL PROGRAMMING LANGUAGES)



What is AWK?

AWK (awk) is a domain-specific language designed for text processing and typically used as data extraction and reporting tool. Like sed and grep, it is a filter and is a standard feature of most Unix-like operating systems.


What is AMPL?

AMPL (A Mathematical Programming Language) is an algebraic modelling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems)



Foundation of AWK and AMPL:

Brian Wilson Kernighan born 1942) is a Canadian computer scientist.

He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known through co-authorship of the first book on the C programming language (The C Programming Language) with Dennis Ritchie. Kernighan affirmed that he had no part in the design of the C language.


AWK was created at Bell Labs in the 1970s, and its name is derived from the surnames of its authors: Alfred Aho, Peter Weinberger, and Brian Kernighan. The acronym is pronounced the same as the bird auk, which is on the cover of The AWK Programming Language. When written in all lowercase letters, like awk, it refers to the Unix or Plan 9 program that runs scripts written in the AWK programming language.


AWK was initially developed in 1977 by Alfred Aho (author of egrep), Peter J. Weinberger (who worked on tiny relational databases), and Brian Kernighan; it takes its name from their respective initials. According to Kernighan, one of the goals of AWK was to have a tool that would easily manipulate both numbers and strings. AWK was also inspired by Marc Rochkind's programming language that was used to search for patterns in input data and was implemented using yacc.

As one of the early tools to appear in Version 7 Unix, AWK added computational features to a Unix pipeline besides the Bourne shell, the only scripting language available in a standard Unix environment. It is one of the mandatory utilities of the Single UNIX Specification and is required by the Linux Standard Base specification.


FOUNDATION OF AMPL:

It was developed by Robert Fourer, David Gay, and Brian Kernighan at Bell Laboratories. AMPL supports dozens of solvers, both open source and commercial software, including CBC, CPLEX, FortMP, Gurobi, MINOS, IPOPT, SNOPT, KNITRO, and LGO. Problems are passed to solvers as nl files. AMPL is used by more than 100 corporate clients, and by government agencies and academic institutions.

One advantage of AMPL is the similarity of its syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization. Many modern solvers available on the NEOS Server (formerly hosted at the Argonne National Laboratory, currently hosted at the University of Wisconsin, Madison) accept AMPL input. According to the NEOS statistics, AMPL is the most popular format for representing mathematical programming problems.



FEATURES OF AMPL:

AMPL features a mix of declarative and imperative programming styles. Formulating optimization models occurs via declarative language elements such as sets, scalar and multidimensional parameters, decision variables, objectives and constraints, which allow for a concise description of most problems in the domain of mathematical optimization.


Procedures and control flow statements are available in AMPL for the exchange of data with external data sources such as spreadsheets, databases, XML and text files

data pre-and post-processing tasks around optimization models the construction of hybrid algorithms for problem types for which no direct efficient solvers are available. To support re-use and simplify the construction of large-scale optimization problems, AMPL allows the separation of model and data.


FOLLOW US ON INSTAGRAM, FACEBOOK AND PINTEREST


DISCLAIMER

The information is provided by Tecquisition for general informational and educational purposes only and is not a substitute for professional legal advice. If you have any feedback, comments, requests for technical support or other inquiries, please mail us by tecqusition@gmail.com.


1 view0 comments

Comments


Post: Blog2_Post
bottom of page