Homoiconic Programming Languages
   HOME





Homoiconic Programming Languages
In computer programming, homoiconicity (from the Greek language, Greek words ''homo-'' meaning "the same" and ''icon'' meaning "representation") is an informal property of some programming languages. A language is homoiconic if a program written in it can be manipulated as data using the language. The program's internal representation can thus be inferred just by reading the program itself. This property is often summarized by saying that the language treats code as data. The informality of the property arises from the fact that, strictly, this applies to almost all programming languages. No consensus exists on a precise definition of the property. In a homoiconic language, the primary representation of programs is also a data structure in a primitive type of the language itself. This makes metaprogramming easier than in a language without this property: Reflection (computer programming), reflection in the language (examining the program's entities at Run time (program lifecycle ph ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Computer Programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of procedures, by writing source code, code in one or more programming languages. Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code, which is directly executed by the central processing unit. Proficient programming usually requires expertise in several different subjects, including knowledge of the Domain (software engineering), application domain, details of programming languages and generic code library (computing), libraries, specialized algorithms, and Logic#Formal logic, formal logic. Auxiliary tasks accompanying and related to programming include Requirements analysis, analyzing requirements, Software testing, testing, debugging (investigating and fixing problems), imple ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Prolog
Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving, and computational linguistics. Prolog has its roots in first-order logic, a formal logic. Unlike many other programming languages, Prolog is intended primarily as a declarative programming language: the program is a set of facts and Horn clause, rules, which define Finitary relation, relations. A computation is initiated by running a ''query'' over the program. Prolog was one of the first logic programming languages and remains the most popular such language today, with several free and commercial implementations available. The language has been used for automated theorem proving, theorem proving, expert systems, term rewriting, type systems, and automated planning, as well as its original intended field of use, natural language processing. See also Watson (computer). Prolog is a Turing-complete, general-purpose programming language, which is well-suited for inte ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Meta-circular Evaluator
In computing, a meta-circular evaluator (MCE) or meta-circular interpreter (MCI) is an interpreter which defines each feature of the interpreted language using a similar facility of the interpreter's host language. For example, interpreting a lambda application may be implemented using function application. Meta-circular evaluation is most prominent in the context of Lisp. A self-interpreter is a meta-circular interpreter where the interpreted language is nearly identical to the host language; the two terms are often used synonymously. History The dissertation of Corrado Böhm describes the design of a self-hosting compiler. Due to the difficulty of compiling higher-order functions, many languages were instead defined via interpreters, most prominently Lisp. The term itself was coined by John C. Reynolds, and popularized through its use in the book '' Structure and Interpretation of Computer Programs''. Self-interpreters A self-interpreter is a meta-circular interpreter whe ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Eval
In some programming languages, eval , short for evaluate, is a function which evaluates a string as though it were an expression in the language, and returns a result; in others, it executes multiple lines of code as though they had been included instead of the line including the eval. The input to eval is not necessarily a string; it may be structured representation of code, such as an abstract syntax tree (like Lisp forms), or of special type such as code (as in Python). The analog for a statement is exec, which executes a string (or code in other format) as if it were a statement; in some languages, such as Python, both are present, while in other languages only one of either eval or exec is. Security risks Using eval with data from an untrusted source may introduce security vulnerabilities. For instance, assuming that the get_data() function gets data from the Internet, this Python code is insecure: session authenticated'= False data = get_data() foo = eval(data) A ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Abstract Syntax Tree
An abstract syntax tree (AST) is a data structure used in computer science to represent the structure of a program or code snippet. It is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language. Each node of the tree denotes a construct occurring in the text. It is sometimes called just a syntax tree. The syntax is "abstract" in the sense that it does not represent every detail appearing in the real syntax, but rather just the structural or content-related details. For instance, grouping parentheses are implicit in the tree structure, so these do not have to be represented as separate nodes. Likewise, a syntactic construct like an if-condition-then statement may be denoted by means of a single node with three branches. This distinguishes abstract syntax trees from concrete syntax trees, traditionally designated parse trees. Parse trees are typically built by a parser during the source code translation and compiling pr ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Burna-Buriash
Burna-Buriaš II () was a Kassite king of Karduniaš (Babylon) in the Late Bronze Age, ca. 1359–1333 BC, where the Short and Middle chronologies have converged. The proverb "the time of checking the books is the shepherds' ordeal" was attributed to him in a letter to the later king Esarhaddon from his agent Mar-Issar. Reign Burna-Buriaš II (rendered in cuneiform as ''Bur-na-'' or ''Bur-ra-Bu-ri-ia-aš'', and meaning ''servant/protégé of the Lord of the lands'' in the Kassite language) is recorded as the 19th King to ascend the Kassite throne, he succeeded Kadašman-Enlil I, who was likely his father, and ruled for 27 years. International relations Egyptians Depending on synchronization with the "high" or "low" chronologies of Egypt, he was a contemporary of the Egyptian Pharaohs Amenhotep III, Akhenaten and Tutankhamen (low). The diplomatic correspondence between Burna-Buriaš and the pharaohs is preserved in nine of the Amarna letters, designated EA (for ''El Amarna' ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Alan Kay
Alan Curtis Kay (born May 17, 1940) published by the Association for Computing Machinery 2012 is an American computer scientist who pioneered work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox PARC he led the design and development of the first modern windowed computer desktop interface. There he also led the development of the influential object-oriented programming language Smalltalk, both personally designing most of the early versions of the language and coining the term "object-oriented." He has been elected a Fellow of the American Academy of Arts and Sciences, the National Academy of Engineering, and the Royal Society of Arts. He received the Turing Award in 2003. Early life and work In an interview on education in America with the Davis Group Ltd., Kay said: Originally from Springfield, Massachusetts, Kay's family relocated several times due to his father's career in physiology before ultimately settling in the ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Semiotic Theory Of Charles Sanders Peirce
Charles Sanders Peirce began writing on semiotics, which he also called semeiotics, meaning the philosophical study of signs, in the 1860s, around the time that he devised his system of three categories. During the 20th century, the term "semiotics" was adopted to cover all tendencies of sign researches, including Ferdinand de Saussure's semiology, which began in linguistics as a completely separate tradition. Peirce adopted the term ''semiosis'' (or ''semeiosis'') and defined it to mean an "action, or influence, which is, or involves, a cooperation of ''three'' subjects, such as a sign, its object, and its interpretant, this trirelative influence not being in any way resolvable into actions between pairs." This specific type of triadic relation is fundamental to Peirce's understanding of logic as formal semiotic. By "logic" he meant philosophical logic. He eventually divided (philosophical) logic, or formal semiotics, into (1) speculative grammar, or stechiology on the el ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Charles Sanders Peirce
Charles Sanders Peirce ( ; September 10, 1839 – April 19, 1914) was an American scientist, mathematician, logician, and philosopher who is sometimes known as "the father of pragmatism". According to philosopher Paul Weiss (philosopher), Paul Weiss, Peirce was "the most original and versatile of America's philosophers and America's greatest logician". Bertrand Russell wrote "he was one of the most original minds of the later nineteenth century and certainly the greatest American thinker ever". Educated as a chemist and employed as a scientist for thirty years, Peirce meanwhile made major contributions to logic, such as theories of Algebraic logic, relations and Quantifier (logic), quantification. Clarence Irving Lewis, C. I. Lewis wrote, "The contributions of C. S. Peirce to symbolic logic are more numerous and varied than those of any other writer—at least in the nineteenth century." For Peirce, logic also encompassed much of what is now called epistemology and the philoso ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Warren Sturgis McCulloch
Warren Sturgis McCulloch (November 16, 1898 – September 24, 1969) was an American neurophysiologist and cybernetician known for his work on the foundation for certain brain theories and his contribution to the cybernetics movement.Ken Aizawa (2004),McCulloch, Warren Sturgis. In: Dictionary of the Philosophy of Mind. Retrieved May 17, 2008. Along with Walter Pitts, McCulloch created computational models based on mathematical algorithms called threshold logic which split the inquiry into two distinct approaches, one approach focused on biological processes in the brain and the other focused on the application of neural networks to artificial intelligence. Biography Warren Sturgis McCulloch was born in Orange, New Jersey, in 1898. His brother was a chemical engineer and Warren was originally planning to join the Christian ministry. As a teenager he was associated with the theologians Henry Sloane Coffin, Harry Emerson Fosdick, Herman Karl Wilhelm Kumm and Julian F. Hecker ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control characters a total of 128 code points. The set of available punctuation had significant impact on the syntax of computer languages and text markup. ASCII hugely influenced the design of character sets used by modern computers; for example, the first 128 code points of Unicode are the same as ASCII. ASCII encodes each code-point as a value from 0 to 127 storable as a seven-bit integer. Ninety-five code-points are printable, including digits ''0'' to ''9'', lowercase letters ''a'' to ''z'', uppercase letters ''A'' to ''Z'', and commonly used punctuation symbols. For example, the letter is represented as 105 (decimal). Also, ASCII specifies 33 non-printing control codes which originated with ; most of which are now obsolete. The control cha ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Calvin Mooers
Calvin Northrup Mooers (October 24, 1919 – December 1, 1994), was an American computer scientist known for his work in information retrieval and for the programming language TRAC. Early life Mooers was a native of Minneapolis, Minnesota, attended the University of Minnesota, and received a bachelor's degree in mathematics in 1941. He worked at the Naval Ordnance Laboratory from 1941 to 1946, and then attended the Massachusetts Institute of Technology, where he earned a master's degree in mathematics and physics. At M.I.T. he developed a mechanical system using superimposed codes of descriptors for information retrieval called Zatocoding. He founded the Zator Company in 1947 to market this idea, and pursued work in information theory, information retrieval, and artificial intelligence. He coined the term "information retrieval", using it first in a conference paper presented in March 1950. See also a short paper published later that year from Mooers. Mooers's law He coi ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]