Programming language: Difference between revisions

[pending revision][pending revision]
Content deleted Content added
Rlee0001 (talk | contribs)
moved and added language dialects
No edit summary
Line 63:
 
Since programming languages are artificial languages, they require a high degree of discipline to accurately specify which operations are desired. Programming languages are not error tolerant; however, the burden of recognising and using the special vocabulary is reduced by help messages generated by the programming language implementation.
There are a few languages which offer a high degree of freedom in allowing self-modification in which a program re-writes parts of itself to handle new cases. Typically, only machine language and members of the [[LISP programming language|Lisp family]] ([[Common Lisp]], [[Scheme programming language|Scheme]]) provide this capability; Some languages such as [[MUMPS]] and [[Perl]] allow modification of data structures that contain program fragments, and provide methods to transfer program control to those data structures; languages that support dynamic linking and loading such as [[C programming language|C]], [[C plus plus|C++]], and the [[Java programming language]]
can fake self-modification by either embedding a small compiler or calling a full compiler and linking in the resulting object code. Interpreting code by recompiling it in real time is called [[dynamic recompilation]]; [[emulator]]s and other [[virtual machine]]s exploit this technique for greater performance.