About Programming Language

Author: Amy Adams  //  Category: C+ Computer Programming, Cg Computer Programming, computer programming

Programming language

There are several characteristics that compare between-languages ​​themselves:
Typing
Main article: Typing .
The typing is done by assigning a type to source code elements (variables, functions, etc..). A type defines a data structure : integer , array , string . In some languages, there are more advanced types ( linked list , semaphore ) and it is sometimes possible to define new ones.
Types found in a programming language depends on its semantic and therefore its paradigms. Many languages ​​offer the concept of variable which associates a name with a value in memory and the name or value to a type.
Typing can be:
Express or implied
We talk about explicit typing when the types are explicitly mentioned in the program source code; an implicit typing is determined by the compiler or interpreter.
Strong or weak
More typing, the stronger the language rules are strict and prohibit manipulation at compile time between data types. Often found in weakly typed languages ​​the opportunity to go typecast manual (English cast ) to fill gaps in the automatic typing.
Static or dynamic
We talk about static typing when type checking is done at compile time, and dynamic typing when it is done at runtime. A more dynamic typing associates types with values, while a static type associated with the variable type.
Typing of C language is explicit, relatively strong [ref. required] (the compiler can generate warnings of typing, the cast manual is permissible, but you can perform any transaction between any types without a cast), and static. The language OCaml has an implicit typing, strong and static (the typechecker is the result of many scientific research 4 ).computer programming cg computer programming c computer programming
Languages ​​sometimes provide mechanisms to convert a value from one type to a value in another kind: we can convert an integer to floating with no loss but the reverse is not always possible. It should not be confused with Casting conversion: the conversion mechanism effectively transforms the data, against the typecasting by simply changing the associated type. This mechanism may be express or implied.
Syntax
Main article: Syntax .
In addition to the semantic features of language, they also use different grammars which often provide common.
The syntactic features are often only details that do not change the functionality offered by programming languages. For example, in Objective-C 2, it is possible to use accessors with two different syntaxes for the same result:
object. message
[Object message]
Comments
Main article: Comment (computer) .
Comments are parts of the program that do not appear in the final application. Comments are used to document and explain the source code. Almost all programming languages ​​used to write comments.
They are introduced and delimited by special characters ( # in bash or Ruby ) or a particular instruction ( REM in BASIC ). In languages ​​whose syntax is inspired from the C (C + +, C #, Objective C, D, Java, JavaScript, PHP …), they are mostly written in this manner:
/ / For a comment on one line
Or like this:
/ * For comment
over several lines * /
It is also possible to specify that some comments should be addressed by tools for automatic generation of documentation (Doxygen, Javadoc, Candydoc …) like this: / / / with a sign “/” in addition to the review a line.
OR: / ** by doubling the “*”
for multiple-line comment * /
Indentation
Main article: Computer # Indentation .
The indent is using spaces or tabs in front of it. Generally, it does not affect how the program works and only serves to improve code readability.
For some languages, indentation is significant and binding: in Python, indentation is used to define a function, class or a conditional test – unlike languages ​​like C where it was the braces {} that fulfill this function .
Instruction separation
Main article: Separator (computer) .
To distinguish one from the next instruction, there are mainly two approaches:
either the end of a statement is marked by a terminator (a ; in C, Java, etc..);
or there is a separator of instructions (a ; in Pascal, a newline in bash or Python).
The distinction is important, because in C, the last statement in a block must include ; (terminator), whereas in Pascal, it is unnecessary or even wrong, to put one (this is to add an empty statement in end of block). Similarly, the character , can be used as a null statement in C, which does not make sense in Pascal.
Languages ​​using a terminator are known to cause less syntactical errors than those using a separator.
Markup
Main article: Markup Language .
Some languages ​​use “tags” delimiting “environments”. A tag is usually a keyword associated with several characters: , <> , etc..
Languages ​​to generate source code or documents often use tags. For example, PHP and JSP tags use to identify areas of code to interpret. XML is a markup language, which allows you to define programming languages ​​like XSP or XSLT .
Evaluation strategy
An evaluation strategy is a set of rules that describe how to evaluate an expression in a programming language. The evaluation strategy defines when the arguments of functions and operators are evaluated or reduced.
There are basically two strategies:
strict evaluation: function arguments are always evaluated before the function is applied.
the lazy evaluation or delayed evaluation: the arguments are only evaluated when their value is actually required. This type of evaluation is generally used in functional languages.
Most languages ​​have a strict evaluation system, and use a form of lazy evaluation for boolean expressions (short circuit evaluation). However it is possible to create a lazy evaluation in a strict evaluation language. For example, Scheme provides the function delay which delays the evaluation of an expression and strength that requires evaluation.
Memory management
Programming languages ​​offer more or less freedom to the programmer regarding the management of memory :
Either it is entirely under the control of the developer who needs to manage himself available memory, the allocation and payment. This is the case for low-level languages ​​such as C .
Everything can be controlled either by the compiler or the runtime (Java): although it is possible to instruct the virtual machine itself manages memory using a crumb . Thus the work of high level languages ​​like Python .
Some languages ​​offer an intermediate system. In Objective-C, you can manage directly, to activate the automatic memory management or use a higher level.
Reflexivity
Main article: Reflexivity (computer) .
We say that a programming language is “reflexive” if it allows, at the time of execution, analyze and act on the inner workings of the program itself.
Language Smalltalk was a pioneer in the field of reflexivity. He also strongly influenced many of the Dynamic Languages, such as Io , Python , Ruby , Java or Objective-C .
Exceptions
Main article: System exception handling .
The exceptions are limiting cases of program execution (divide by 0, etc..). When they are generated, the program flow is interrupted. Instead of an error that abruptly interrupts the program, handling an exception can interrupt a program properly, correct the error and to resume execution.
Exception handling may be different in different languages, namely:
There are none (C);
She noted except without treatment (C + +, Java);
It allows treatment: for example, modifying the program by the program itself (as in Python) to resume execution “normally”.
Competition
Main article: Concurrent programming .
Concurrent programming is to cut a program into multiple execution son . The competition simulates the execution of different tasks simultaneously or as part of a GUI, perform tasks in the background without blocking the refreshing of the display. Concurrent programming can also take advantage of distributed resources (multiple CPUs, cluster of machines, etc..) or system scheduling process of the operating system.
Some languages ​​include direct competition in their primitive ( Erlang , Concurrent ML ). Generally, competition is incorporated through libraries specific: the C language provides, inter alia library of thread POSIX , Java has a class Thread in its standard libraries.
Main paradigms

Main articles: Paradigm (programming) and semantics of programming languages ​​.
Every programming language is different. Solution expressed in a language can “look like” a solution expressed in another language, in which case we say that languages ​​use the same paradigm (or style). Both programs provide the solution to the same problem, but written with different paradigms are fundamentally very different.
Many languages ​​simultaneously belong to several categories: they are “multi-paradigm”. For example, C + + allows imperative programming, object oriented and generic programming (based classes and parameterized functions called templates ). Common Lisp is both imperative, functional, object-oriented character “programmable” (a language programmable programming …) allows to integrate other “paradigms” programming within it (eg: logic programming and constraint programming).
Procedural and imperative languages ​​
Main articles: Imperative programming and procedural programming .
There are two types of imperative languages. Firstly the machine languages ​​and assemblers. This explains that the first programming languages ​​are imperative paint ball languages ​​appeared: a language of instruction is a set of machine language instructions . Data structures and operations are more complex than at the machine, but followed the paradigm remains the same.
Procedural languages ​​form the second family of imperative languages. A procedure , also known function, is a sequence of instructions to be performed in a specific order. Procedure and sometimes distinguished by the characteristic function a procedure does not return a result.
Among the imperative languages ​​include COBOL , FORTRAN , Pascal or the C .
Declarative languages ​​
Main article: Declarative Programming .
A declarative language does not describe how an operation is performed, as in an imperative language, but describes the problem itself, without addressing the context.
Declarative languages ​​are among the Oz , Prolog or clips .
Logic languages ​​
Main article: Logic Programming .
A logic program consists of facts and rules that are processed by an inference engine .
Prolog language was the first of its kind to be functional on a computer.
Functional languages ​​
Main article: Functional Programming .
In this paradigm, the basic operation is not the assignment , in contrast to imperative languages, but the evaluation of functions. This paradigm is mainly effective for modeling problems that are expressed by data values, as in mathematics, not states that change during execution.
Some functional languages, called “pure”, completely prohibit the side effects , such as changing data where one variable is related to a non-editable. Others incorporate certain features of imperative languages ​​where variables can change value during the execution.
Some examples of functional languages: Objective Caml (functional and imperative language), Haskell (pure functional language with lazy evaluation ), Python (some features of functional style as the use of lambda functions or comprehension of lists).
Languages ​​to stack
These languages ​​handle only data stacks where operations are performed on the elements of the summit of one or more batteries.
Typical examples are the languages ​​Forth , Factor , PostScript , Joy , Cat or RPL (HP 48).
Object-oriented languages ​​
Main article: Object-oriented programming .
The object-oriented languages ​​provide an abstract machine: the object is a structure semantics independent body made ​​up of data and processing.
Based on a design method to object and a modeling language for object, one can easily implement a concept using a programming language objects.
Among the object-oriented languages ​​are usually classified Ruby and Smalltalk , purely object, that is to say that everything is an object, since the basic types, up to the performer or the blocks of instructions, the C + + , extension C allows you to use items but everything is not an object; Python , very object-oriented but that does not respect all the principles of object oriented programming such as encapsulation .
Uses

One can also classify programming languages ​​based on their usage because many languages ​​are specialized to an application or a particular area.
Data Definition Languages ​​
Main article: Data Definition Language .
A data definition language does not allow for treatment but to describe the data structure ( lists , trees …) and instances of these structures.
XML is a language for example the representation of data as a tree structure, the DDL part of SQL is used to describe relational data. Languages ​​that describe documents may also be considered as data definition language. Thus, LaTeX is an example of data definition language used to write a document by centralizing its formatting. LaTeX is compiled to other document description languages, generally more “low level” as PDF or Postscript .
These languages ​​are usually not considered programming languages. However the source code products with these languages ​​have certain features of programs such as source code control structures (conditions, loops …) and means of interaction with the system (environment variable, forms …). They are cited here for illustrative purposes, but are at the border of programming.
Query languages ​​
Main article: Query Language .computer programming cg computer programming c computer programming
Query languages ​​are designed to query and manipulate databases .
SQL is a query language used by many management systems databases such as Oracle , SQL Server or MySQL .
Languages ​​for dynamic web pages
See: Language for dynamic Web pages .
This type of language is used for greater interaction between a client and a server .
Side of the web server , it can produce pages whose content is generated at each display. These languages ​​are also often coupled with a language to communicate with databases (eg PHP ).
Client side (usually the browser ), languages ​​to respond to specific user actions without having to query the server. For example, the JavaScript on a web page can respond to user input in a form (and check the data format ).
Some languages ​​allow you to develop both client and server aspects. This is the case of Ocsigen , of Hop or even the server-side JavaScript .
Theoretical programming languages ​​
See: Programming language theory .
Sometimes referred to theoretical programming languages ​​the formal systems used to describe theoretically the operation of computers. They are not used to develop applications but models to represent and demonstrate some of their properties.
One example is the Turing machine and the λ-calculus of Church , both dating from the 1930s, and therefore predate the invention of the computer. The λ-calculus has subsequently served as the theoretical basis to the family of functional programming languages ​​. In the 1980s, Robin Milner developed the π-calculus to model concurrent systems.
To make programming more difficult
Main article: exotic programming language .
Exotic languages ​​are designed to create complete and functional grammars but in a paradigm away from conventions. Many are also considered jokes.
These languages ​​are generally difficult to implement and therefore rarely used. For example, Piet can be programmed using of raster images .
We may also mention the Brainfuck is a minimalistic language and Turing-complete (8 instructions only). It is designed to run on a Turing machine with a compiler only 171 bytes.
Specialized languages ​​
ABEL , the programming language for electronic PLD
CDuce , higher-order functional language for manipulating XML documents.
Backus-Naur Form (BNF), formalization of programming languages
PROMELA , the specification language of asynchronous systems
VRML , scene description in three dimensions
Synchronous languages ​​
Synchronous programming languages ​​for reactive systems: Esterel , Lustre .
Languages ​​for educational purposes
The pseudo-code (like the Language K ) generally have an educational purpose only.
Logo is a functional language easy to learn.
In the 1990s it was the language BASIC was often advised to begin. But he had a reputation for favoring the taking of bad programming habits.
Languages ​​for digital electronics
Verilog , VHDL : hardware description languages, for synthesizing digital electronics (descriptions of logic gates) and to simulate the operation
SystemC , hardware description language higher level than the previous one and allows faster simulation
Languages ​​for statistics
R , SAS and xlispstat are both a language of statistics and software.
Programming languages ​​in numerical control (NC)
Main article: CNC Programming .
A machine tool automated or CNC (CN), needs a programming language to perform operations of turning , or milling …
Programming languages ​​for programmable logic controllers (PLCs)
Sequential function chart , graphic language, derived from the SFC (Note: the Grafcet specification defines graphically)
Ladder language , graphic language
Audio programming languages ​​
Nyquist is a language for sound synthesis and analysis. Pure Data is a graphical music creation software that relies on a procedural programming language.
Popularity

The number of users of each language is difficult to quantify, however there is the TIOBE index is calculated monthly by the eponymous company. This index is based on the number of training / courses for engineers and the number of resellers / freelancers who specialize in a programming language. This information is patchy, but that can give you an idea of trends preferably programmers.

Programming language

Capture the microcomputer Commodore PET-32 showing a program in the programming language BASIC , under the emulator VICE distribution in GNU / Linux .
A programming language is an artificial language designed to express computations that can be carried out by machines such as computers . Can be used to create programs that control the physical and logical behavior of a machine, to express algorithms precisely, or as a means of human communication. 1 is composed of a set of symbols and rules syntax and semantics that define its structure and meaning of its elements and expressions. The process by which it is written, tested , debugging , compiling and maintaining the source code of a software program is called.
Also the word programming is defined as the process of creating a program of computer , through the application of logical procedures, through the following steps:
The logical development of the program to solve a particular problem.
Writing the program logic using a specific programming language (program code).
Assembly denver car accident lawyer or compilation of the program to convert it into machine language.
Test and debug the program .
Development of documentation.
There is a common misconception that by looking the words’ car insurance comparison programming language ‘and’ computer language ‘. Computer languages ​​encompass programming languages ​​and others, such as HTML ( the markup language for the web pages that is not really a programming language but a set of instructions that allow you to design the content of the documents).computer programming cg computer programming c computer programming
Allows you to specify precisely what data must operate a computer, how they should be stored or transmitted and what actions should be taken under a variety of circumstances. All this, through a language that tries to be relatively close to human or natural language. An important feature of programming languages ​​is more than just a programmer can use a common set of instructions that are included among them for building a collaborative program.

History

Fortran code on a punched card , showing the use of specialized columns 1-5, 6 and 73-80.
For the computer to understand our instructions must use a specific language called machine code , which the machine is easily understood, but that makes it too complicated for people. In fact just about large chains of numbers 0 and 1 .
For simplicity, the first computer operators to a translator decided to replace the 0 and 1 for words or abstract words and letters from the English , this is known as assembly language . For example, to add the letter A is used the English word add (add). Assembly language is the very structure of machine language, but the letters and words are easier to remember and understand the numbers.
The need for programming sequences recall the usual actions led to call them with names easy to remember and associate: ADD (addition), SUB (subtraction), MUL (multiply), CALL (subroutine run, etc.). This sequence of positions was called “instructions”, and this set of instructions called assembly language . Later appeared different programming languages, which receive their name because they have a structure syntax similar to languages ​​written by humans, also called high-level languages ​​.
The first known computer programmer was Ada Lovelace , daughter of Annabella Milbanke Byron and Lord Byron . Anabella introduced mathematics to Ada who, after meeting Charles Babbage , translated and expanded a description of his analytical engine. Even though Babbage never completed the construction of any of their machines, the work they performed with Ada earned him the title of first computer programmer in the world. The name of the Ada programming language was chosen as a tribute to the programmer.
In late 1953 , John Backus submitted a proposal to his superiors at IBM to develop a more practical alternative to assembly language for programming mainframe IBM 704 . The historic team Fortran of Backus consisted of programmers Richard Goldberg , Sheldon F. Best , Harlan Herrick , Peter Sheridan , Roy Nutt , Robert Nelson , Irving Ziller , Lois Haibt and David Sayre . 2
The first manual for the language FORTRAN appeared in October 1956 , with the first compiler Fortran delivered in April of 1957 . This was an optimizing compiler, because customers were reluctant to use a high-level language unless its compiler could generate code whose performance was comparable to that of a hand-made code in assembly language.
In 1960 , created COBOL , one of the languages ​​used even in 2010 in computer management .
As the complexity of the tasks being carried out by computers increased, it became necessary to have a more efficient way to program them. Then he created the high-level languages ​​, as it was BASIC on microcomputers introduced versions of the decade of 1980 . While a task as simple as adding two numbers may need several assembly language instructions in a high-level language one statement will suffice.
Items

Variables and Vectors
The variables could be described as containers of data and therefore differ depending on the type of data they can store. In most programming languages ​​is required to specify a particular type of variable to store a piece of data. For example, in Java , if we want to keep a string we specify that the variable is of type “String”. In contrast to other languages ​​like PHP , this type of specification variables is not necessary. In addition credit card offers there are also composed of several variables variables called vectors. A vector is simply an ordered set of variables stored in a container of the type variables vector. Next add a list of CrossFit Denver variable types and most common vectors:
Char-Variables: These variables e-cigarette contain a single character, ie a letter, sign or number.
Q-type variables: They contain an integer.
-Variables float: They contain a decimal number.
-String Variables: Contains text strings, or whatever it is, is a vector with several variables of type Char.
-Boolean variables: They can only contain a 0 or a 1. Zero is considered for many languages ​​as the variable of type String “False” while 1 is considered “True”.
Constraints
The conditioners are structures of code that indicate that for that certain part of program to run must be met certain premises, as for example, that two values ​​are equal, that a value exists, that a value is greater than another and similar. These conditions usually only run once during the program. The conditions most known and used in programming are:
-If: Indicates a condition to run a portion of the program.
-Else if: Always preceded by an “If” and indicates a condition to run part of the program provided that if the condition of pre-and if you meet the “else if” specify.
-Else: Always preceded by “If” and sometimes “Else If”. Indicates not to be executed when the preconditions are met.
Loops
The loops are close relatives of the conditioning, but constantly running code while a certain condition is met. The most common are:
-For: Run a code as a variable is between 2 certain parameters.
-While: Executes a code while the condition you have requested.
Must say that despite that there are different types of loops, both are able to perform exactly the same functions. Employment of one or another depends, usually, of taste of the programmer.
Functions
The functions were created to avoid having to constantly repeat code snippets. A function may be considered as a variable that contains code within it. So when we access that variable (function) actually what we are telling the program to execute a predefined code given above.
All programming languages ​​have some primitive training elements for description of data and of the processes or transformations applied to these data (such as the sum of two numbers or selection of an element which forms part of a collection). These primitives are defined by syntactic and semantic rules that describe its structure and meaning respectively.
Syntax

Often highlights the syntax elements with different colors for easy reading. This example is written in Python .
In the visible form of a programming language known as syntax. Most programming languages ​​are purely textual, ie using text strings that include words, numbers and punctuation, much like written natural languages. On the other hand, some programming languages ​​that are more graphic in nature, using visual relationships between symbols to specify a program.
The syntax of a programming language describes the possible combinations of symbols that form a syntactically correct program. The meaning given to a combination of symbols is driven by its semantics (either formal or as part of the hard code of the reference implementation). Since most languages ​​are textual, this article discusses textual syntax.
The syntax of programming languages ​​is usually defined using a combination of regular expressions (for lexical structure) and Backus-Naur notation (for grammatical structure). This is an example of a simple grammar, taken from Lisp :
expression :: = atom | list
atom :: = number | symbol
number :: = [ + - ] ? [ ' 0 '-' 9 ' ] +
symbol :: = [ 'A'-' Z ' < nowiki > ' < / nowiki > a'-'z' ] . *
list :: = ‘ ( ‘expression *’ ) ‘
With this grammar is specified as follows:
an expression can be an atom or a list ;
an atom can be a number or a symbol ;
a number is a continuous sequence of one or more decimal digits, optionally preceded by a plus or a minus sign;
a symbol is a letter followed by zero or more characters (excluding spaces) and
a list is a pair of parentheses that open and close, with zero or more expressions in the middle.
Some examples of sequences well formed according to this grammar:
‘ 12345 ‘,’ () ‘,’ (ab C232 (1)) ‘
Not all syntactically correct programs are semantically correct. Many programs are syntactically correct inconsistencies with the rules of language, and can (depending on the language specification and robustness of implementation) result in an error of translation or execution. In some cases, such programs may exhibit undefined behavior. Moreover, even when a program is well defined within a language, you can still have a meaning that is not the person who wrote it was trying to build.
Using natural language, for example, may not be possible to assign meaning to a grammatically valid sentence or the sentence may be false:
“Ideas colorless sleep furiously green” is a grammatically well-formed sentence but has no commonly accepted meaning.
“John is a married bachelor” is also grammatically well-formed but expresses a meaning that can not be true.
The following passage in the language C is syntactically correct, but running an operation that is not defined semantically (since p is a null pointer, the operations p-> real and p-> im have no meaning):
complex * p = NULL ;
complex abs_p = sqrt ( p -> real * p -> real + p -> im * p -> im ) ;
If the return type of the first line was omitted, the program will trigger a compile error because the variable ” p “would not be defined. But the program still would be syntactically correct, since the type declarations provide semantic information only.
The grammar needed to specify a programming language can be classified by their position in the Chomsky hierarchy . The syntax of most programming languages ​​can be specified using a type-2 grammar, ie they are context-free grammars. Some languages, including Perl and Lisp , contain constructs that allow the execution during the analysis phase. Languages ​​that allow buildings that allow the programmer to alter the behavior of an analyzer makes the syntax analysis no single decision problem, and often obscure the separation between analysis and execution. In contrast to the macro system of Lisp and BEGIN blocks Perl , which may have general calculations, macros in C are mere replacements of strings, and do not require code execution.
static semantics
The static semantics defines restrictions on the structure of valid texts it is impossible or very difficult to express using standard syntactic formalisms. For compiled languages, the static semantics basically Denver Divorce Lawyer include semantic rules that can be checked at compile time. Eg checking that each identifier is declared before being used (in languages ​​that require such declarations) or that labels in each arm of a structure case are different. Many major restrictions such as validation that the identifiers are used in appropriate contexts (eg not add an integer to the name of a function), or subroutine calls have the number and type of appropriate parameters, can be implemented by defining them as rules in a logic known as type system. Other forms of static analysis, as analyzes of data flow, can also be part of the static semantics. New programming languages ​​like Java and C # have a definite assignment analysis, a form of data flow analysis as part of its static semantics.
Type System
Main article: Type System
A type system defines the way in which a programming language classifies values ​​and expressions into types , how they can be handled those types and how they interact. The purpose of a type system to verify and enforce usually some level of accuracy in programs written in the language in question, detecting certain invalid operations. Any type system decidable has its advantages and disadvantages: on one hand while rejecting many incorrect programs, also prohibits some correct programs but rare. To minimize this disadvantage, some languages ​​include gaps in types , not punches explicit conversions that can be used by the programmer to explicitly allow an operation not normally allowed between different types. In most typed languages, the type system is used only to check the types of programs, but several languages, usually functional, perform what is known as type inference, which takes away the programmer to to specify the types. The design and formal study of type systems is known as type theory .
Languages ​​typed versus untyped languages

The following text is a translation faulty or incomplete.
If you want to work with Wikipedia, find the original article and improve this translation or ends .
You can notify the author of the paper pasting this code on their talk page: {{subst: Notice mistranslated | Programming language}} ~ ~ ~ ~
It is said that a language has types if the specification of each operation defines data types for which the operation is applicable, with denver martial arts the implication that does not apply to other types. For example, ” this text in quotes “is a string. In most programming languages, divide a number by a string has no meaning. Therefore, most modern programming languages ​​reject any attempt to execute this transaction by any program. In some languages, these operations are meaningless detected when the program is compiled (type validation “static”) and are rejected by the compiler, while in others they are detected when the program is executed (type validation “dynamic”) and generates an exception at runtime.
A special case of such languages ​​are the languages ​​of simple type . These are often markup languages ​​or scripts , such as REXX or SGML , and only have a data type, commonly character strings which are then used for both numeric and symbolic data.
In contrast, a language without types , like most assembly languages, allow any operation is applied to any data, which usually are considered bit sequences of various lengths. High-level languages ​​with no data include BCPL and some varieties of Forth .
In practice, though few typed languages ​​are considered from the standpoint of the theory of types (ie, verifying or rejecting Bankruptcy all operations), most modern languages ​​offer some degree of management types. While many production languages ​​provide means to skip or subvert the type system.
Types static versus dynamic typing

The following text is a translation faulty or incomplete.
If you want to work with Wikipedia, find the original article and improve this translation or ends .
You can notify the author of the paper pasting this code on their talk page: {{subst: Notice mistranslated | Programming language}} ~ ~ ~ ~
In languages ​​with static type determines the type of all expressions before execution of the program (typically at compile time). For example, 1 and (2 +2) are integer expressions, they can not be passed to a function expecting a string, or can be stored in a variable that is defined as a date.
Static typed languages ​​types can handle explicit or types inferred . In the first case, the programmer must write types at certain textual positions. In the second case, the compiler infers the types of expressions and statements according to context. Most popular statically typed languages ​​such as C + + , C # and Java , manage explicit types. Total inference types usually associated with less popular languages ​​such as Haskell and ML . However, many typed languages ​​allow explicit partial type inference, both Java and C # , for example, infer types in a limited number of cases.
Languages ​​with dynamic types determine the validity of the types involved in operations during program execution. In other words, types are associated with running values ​​instead of textual expressions . As in the case of inferred typed languages, dynamically typed languages ​​do not require the programmer to write the kinds of expressions. Among other things, this allows the same variable can be associated with values ​​of different types at different times of the execution of a program. However, type errors can not be detected automatically until you run the code, making debugging of programs. Ruby , Lisp , JavaScript and Python are dynamically typed languages.
Types weak and strong types
Languages ​​weakly typed allow a value of one type can be treated as of another type, for example a chain can be operated as a number. This can be useful at times, but can also allow certain types of failures that can not be detected at compile time or sometimes not even at runtime.
The language strongly typed avoid passing this. Any attempt to perform an operation on the wrong guy shoots a mistake. A strong-typed languages ​​are often called insurance rate .
Weak typed languages ​​like Perl and JavaScript allow a large number of implicit type conversions. For example, enabled the expression 2 * x implicitly converts x to a number, and this conversion is successful even when x is null , undefined , an Array or string of letters. These implicit conversions are often useful, but can also hide bugs.
The characteristics of static and strong are now generally considered orthogonal concepts, but their treatment varies in different texts. Some use the term strongly typed to mean strongly static types or to increase the confusion, just as equivalence of static typing . So that C has been called both strongly typed language as weak statically typed language.
Implementation

Source code of a program written in the Java programming language .
The implementation of a language is one that provides a way to run a program for a particular combination of software and hardware . There are basically two ways to implement a language: compilation and interpretation .
Compilation is auto insurance quotes the process that translates a program written in a programming language to another programming language, generating an equivalent program that the machine will be able to interpret. Translator programs that can perform this operation are called compilers . These, like the advanced assembler programs can generate thousands of lines of machine code for each statement of the source program.
Interpretation : is an assignment of meanings to well-formed formulas of a formal language . As formal languages ​​can be defined in purely syntactic , their well-formed formulas can not be more than strings of symbols without any meaning. An interpretation gives meaning to these formulas.
You can also use an alternative to translate high-level languages. Instead of translating the source program and a permanent record in the object code produced during compilation for use in a future implementation, the programmer only source loads the program into the computer along with the data to be processed. Next, a program interpreter , stored in the disk operating system, or permanently included in the machine, each proposition becomes the source program into machine language as will be necessary during the processing of the data. The object code is not saved for later use.
The next time you use an instruction, it must again interpret and translate into machine language. For example, during repetitive processing steps of a cycle or loop, each loop instruction will have to be interpreted in each cycle repeated execution, which makes the program slower runtime (because it is reviewing the code at runtime) but faster at design time (because you have to be compiled every time the complete code). The interpreter removes the need to compile after each modification of the program when you want to add features or fix bugs, but it is obvious that a program being compiled in advance should run much faster than one that must be interpreted at each step during execution of the code.
Most high-level languages ​​allow multi-programming, but many of them were designed to allow programming dedicated, as was the Pascal with mathematics at the start. Languages ​​have also been implemented as a children’s educational Logo through a series of simple instructions. At present, some languages ​​are very popular especially suited for Web applications , such as Perl , PHP , Ruby , Python or JavaScript .
Technical

Books about different programming languages.
To write programs that provide the best results, it should take into account a number of details.
Correction . A program is correct if you what to do as stated in the preliminary phases of development. To determine if a program does what it must, it is important to specify clearly what to do before you develop the program and, once finished, compare it to what it actually does.
Clarity . It is very important that the program is as clear and readable as possible to facilitate their development and maintenance. In developing a program you should try that its structure is simple and consistent, and care in editing style, in this way is facilitated the work of the programmer , in the creation phase and in the later stages of error correction , extensions, modifications, etc.. Phases that can be performed even by another developer, which further clarity is necessary to allow other developers to continue the work easily. Some developers go so far as to use ASCII art to delimit sections of code. Others, for fun or to prevent other programmers comfortable analysis, resort to using obfuscated code .
Efficiency . This is the program, in addition to that for which it was created (that is, that’s right), managing to do it as best as possible the resources used. Normally, when talking about efficiency of a program, often referred to the time taken to perform the task for which he was created and the amount of memory you need, but there are other resources that may also be considered to achieve the efficiency of a program, depending on their nature (disk space used, network traffic it generates, etc..).
Portability . A program is portable when you have the ability to run on a platform, either hardware or software different from that in which it was developed. Portability is a very desirable feature for a program, allowing, for example, a program that has been developed for systems GNU / Linux also run in the family of operating systems Windows . This allows the program to reach more users more easily.
Paradigms
Programs can be classified by the paradigm of language that is used to produce them. The main paradigms: imperative , declarative and object orientation .
Programs that use an imperative language specify an Plastic Bins algorithm , using statements, expressions and statements. 3 A declaration associates a variable name with a data type, for example: var x: integer; . An expression contains a value, for example: 2 + 2 contains the value 4. Finally, a judgment must assign an expression to a variable or use the value of a variable to alter the flow of a program, for example: x: = 2 + 2, if x == 4 then do_something (); . A common criticism in imperative languages ​​is the effect of assignment statements about a class of variables called “nonlocal”. 4
Programs that use a declarative language specify the properties that the output should know and do not specify any implementation detail. Two broad categories of declarative languages ​​are functional languages ​​and logic languages ​​. Functional languages ​​do not allow non-local variable assignments thus made ​​easier, for example, programs like mathematical functions. 4 The principle behind logical languages ​​is to define the problem to be solved (the target) and leave the details of the solution to the system. 5 The objective is defined giving a list of sub-objectives. Each sub-goal is also defined by giving a list of sub-objectives, etc.. If trying to find a solution, a path of subgoals fails, then this sub-objective is discarded and systematically try another route.
The way in which program can be through text or visual form. In the visual programming elements are graphically manipulated rather than specified by means of text.

what is the cg position of B 737-800 aircraft in front, side and top view ?

Author: Amy Adams  //  Category: Cg Computer Programming

people i am working on landing gear of B 737-800. i want to locate the cg position this aircraft. can any one cane help me on this .

Pilot’s don’t figure the CG vertically or laterally, generally my flights seem to be about 20% MAC.

How do you make a foreground object or actor pass in front of CG content?

Author: Amy Adams  //  Category: Cg Computer Programming

If you have a video with camera tracking and CG objects superimposed (I’m using Blender), how can I make foreground objects/actors appear to pass in front of said superimposed objects, i.e. key out the actor’s silhouette. I’m even willing to do it manually; I just don’t know how.

Sorry, can’t help, but just wanted to suggest that you might be better off asking this in the camcorder section (since there is no "video" section as such).