, YACC Yet Another compiler compiler Compiler Compiler takes input in Backus Naur form and converts it to a parser ... of a parser for a compiler, yacc is also often used to automate writing code that needs to be modified ... more details
has entered common use due to Yacc rather than Brooker s work being remembered. Citation needed date ... implementations of XPL featured an SLR 1 parser. yaccyacc is a parser generator developed by Stephen C. Johnson at AT&T for the Unix operating system. ref Johnson, S.C., Yacc Yet Another Compiler Compiler ... similar to Backus Naur Form. Johnson worked on yacc in the early 1970s at Bell Labs . ref http www.techworld.com.au article 252319 a z programming languages yacc ref He was familiar with TMG and its influence can be seen in yacc and the design of the C programming language. Because Yacc was the default ... GNU Bison are still in use. The parser generated by yacc requires a lexical analyzer . Lexical analyzer .... The IEEE POSIX P1003.2 standard defines the functionality and requirements for both Lex and Yacc. See ... and Flex lexical analyser , the token parser commonly used in conjunction with yacc and Bison . Backus ... more details
lowercase lint In computer programming , lint was the name originally given to a particular program that flagged some C programming language Undefined behavior suspicious and non portable constructs likely to be bugs in C programming language C language source code . The term is now applied generically to tools that flag suspicious usage in software written in any computer language . The term lint like behavior is sometimes applied to the process of flagging suspicious language usage. Lint like tools generally perform static code analysis static analysis of source code. Background Lint first appeared outside of Bell Labs in the seventh version V7 of the Unix operating system in 1979. It was derived from PCC, the Portable C Compiler , which was included with that system. Lint and PCC were developed by Stephen C. Johnson , who also authored the parser generator yacc . The term was derived from the name of the undesirable bits of fiber and fluff found in sheep s wool. Overview Suspicious constructs include variables being used before being set, conditions that are constant, and calculations whose result is likely to be outside the range of values representable in the datatype type used. Many of the forms of analysis performed by lint like tools are also performed by optimizing compiler s, whose prime motivation is to generate faster code. Modern compiler s can often detect many of the constructs traditionally warned about by lint. Writers of lint like tools have continued to improve the range of suspicious constructs that they detect. Modern tools perform forms of analysis that many optimizing compilers typically don t do, such as cross module consistency checking, checking that the code will be portable to other compilers, and supporting annotations that specify intended behavior or properties of code. See also List of tools for static code analysis Splint programming tool Splint References Stephen C. Johnson Stephen Johnson . Lint, a C program checker . Computer Scie ... more details
Refimprove date December 2009 The Syntax Semantic Language S SL is an executable high level programming language high level specification language for recursive descent parser s, semantic analyzers and code generators developed by James Cordy , Ric Holt and David Wortman at the University of Toronto in 1980. ref J. R. Cordy, R. C. Holt and D. B. Wortman, S SL Syntax Semantic Language Introduction and Specification, Technical Report CSRG 118, Computer Systems Research Group, University of Toronto, Sept. 1980 ref S SL is a small programming language that supports cheap recursion and defines input, output, and error token names & values , semantic mechanisms class interfaces whose methods are really escapes to routines in a host programming language but allow good abstraction in the pseudocode pseudo code and a pseudo code program that defines the syntax of the input language by the token stream the program accepts. Alternation, control flow and one symbol look ahead constructs are part of the language. The S SL processor compiler compiles this pseudo code into a table byte codes that is interpreted by the S SL table walker Interpreter computing interpreter . The pseudo code language processes the input language in LL 1 recursive descent style but extensions allow it to process any LR parser LR k language relatively easily. ref D.T. Barnard and J.R. Cordy, SL Parses the LR Languages , Computer Languages 13,2 April 1988 , pp. 65 74 http dx.doi.org 10.1016 0096 0551 88 90010 0 ref S SL is designed to provide excellent syntax error recovery and repair. It is more powerful and transparent than Yacc but can be slower. S SL s semantic mechanisms extend its capabilities to all phases of compilation, and it has been used to implement all phases of compilation, including Lexical analysis scanners , parser parsers , semantic analysis compilers semantic analyzers , code generation compiler code generators and virtual machine interpreters in multi pass language processors. ref ... more details
Infobox programming language name TXL logo paradigm Pattern matching and Term rewriting designer Charles Halpern Hamu br James Cordy developer James Cordy br Charles Halpern Hamu br Ian Carmichael br Eric Promislow TXL is a special purpose programming language originally designed by Charles Halpern Hamu and James Cordy at the University of Toronto in 1985. The acronym TXL originally stood for Turing eXtender Language after the language s original purpose, the specification and rapid prototyping of variants and extensions of the Turing programming language Turing programming language, but no longer has any meaningful interpretation. Modern TXL is specifically designed for creating, manipulating and rapidly prototyping language based descriptions, tools and applications using source transformation. It is a hybrid Functional programming functional rule based programming rule based language using first order functional programming at the higher level and term rewriting at the lower level. The Semantics of programming languages formal semantics and implementation of TXL are based on formal term rewriting , but the term structures are largely hidden from the user due to the example like style of pattern specification. Each TXL program has two components a description of the source structures to be transformed, specified as a possibly ambiguous context free grammar using an extended Backus Naur Form and a set of tree transformation rules, specified using pattern replacement pairs combined using first order functional programming. TXL is designed to allow explicit programmer control over the interpretation, application, order and backtracking of both parsing and rewriting rules, allowing for expression of a wide range of grammar based techniques such as agile parsing. The first component parses the input expression into a tree using pattern matching . The second component uses Term rewriting in a manner similar to Yacc to produce the transformed output. TXL is most commonly ... more details
Most of the following text was originally extracted from http www.research.att.com sw tools uwin UWIN is a computer Computer software software package created by David Korn computer scientist David Korn which allows Computer program programs written for the operating system Unix be built and run on Microsoft Windows with few, if any, changes. Some of the software development was subcontracted to Wipro , India. UWIN source and binaries are available under the open source Common Public License 1.0 at AT&T AST UWIN open source downloads. Technical details Technically, it is an X Open Library computing library for the Windows 32 bit application programming interface API , called Windows API Win32 . Most of the following text was extracted from http www.research.att.com sw tools uwin UWIN contains Libraries that emulate a Unix environment by implementing the Unix API Include files and development tools such as C programming language cc 1 , yacc 1 , lex programming tool lex 1 , and make software make 1 . ksh 1 the Korn Shell and over 250 utilities such as ls 1 , sed 1 , Cp Unix cp 1 , stty 1 , etc. Most of the following text was extracted from http www.research.att.com sw tools uwin Most of the Unix API is implemented by the POSIX.DLL dynamically loaded shared library. Programs linked with POSIX.DLL run under the Win32 subsystem instead of the POSIX subsystem, so programs can freely intermix Unix and Win32 library calls. A cc 1 command is provided to compile and link programs for UWIN on Windows using traditional Unix build tools such as make 1 . The cc 1 command is a front end the underlying compiler that performs the actual compilation and linking. It can be used with the Microsoft Visual C C 5.X compiler, the Visual C C 6.X compiler, the Visual C C 7.X compiler, the Digital Mars C C compiler, compiler, the Borland C C compiler, and the Mingw compiler. The GNU compiler and development tools are also available for download to UWIN. UWIN runs best on Windows NT 2000 XP 7 ... more details
hoc , an acronym for High Order Calculator , is an Interpreter computing interpreted programming language that was used in the 1984 book The Unix Programming Environment to demonstrate how to build interpreters using Yacc . Hoc was developed by Brian Kernighan and Rob Pike as a glorified interactive calculator. Its basic functionality is to evaluate floating point numerical expressions, e.g., 1 2 sin 0.7 . Then, variables were added, conditionals, loops, user defined functions, simple IO, and more, using a syntax resembling C. An improved Hoc interpreter was included in Eighth Edition Unix Eighth Edition Research Unix in 1985, but it has not been generally adopted by commercial Unix systems or by Linux distributions. Instead, the earlier calculator languages dc Unix dc and bc programming language bc have become widespread on those systems. Hoc survived and continued to evolve as part of the Plan 9 from Bell Labs Plan 9 operating system. Several improved versions of Hoc were released as free software by Bell Labs and other individuals see list below . Examples The following is a simple example of an interactive calculator session in Hoc bold text represents hoc s output 1 2 3 7 angle PI 3 r sin angle r 0.866025 r 2 1.73205 And a simple example of functions and flow control func atan2 if 1 0 return atan 2 1 else if 1 0 return atan 2 1 PI else if 2 0 return PI 2 else if 2 0 return PI 2 else print atan2 domain error return 0 atan2 2,3 0.982794 atan2 0,0 atan2 domain error 0.0 References cite book last1 Kernighan first1 Brian W. last2 Pike first2 Rob title The Unix Programming Environment year 1984 publisher Prentice Hall isbn 013937681X Hoc implementations and versions AT&T versions http cm.bell labs.com who bwk unixprogenv.tar.gz The original code from the Unix Programming Environment book , including hoc. http netlib.bell labs.com bwk hoc.sh Source code of Hoc from Bell Labs, released as free software . This is the Research Unix version, slightly improved over the one ... more details
Infobox Software name PIKT logo screenshot caption developer Robert Osterlund latest release version 1.19.0 latest release date September 10, 2007 latest preview version latest preview date operating system Cross platform platform Unix , Linux genre System Monitoring , Configuration management , System administration , Network management , Network monitoring , Host based intrusion detection system , Content management system , Web content management system , Scripting language license GNU General Public License website http pikt.org pikt.org PIKT is cross categorical, multi purpose software for global view, site at a time system and network administration. Applicability includes system monitoring, configuration management, server and network administration, system security, and many other uses. PIKT consists of a feature rich file preprocessor a scripting language a flexible, centrally directed process scheduler a customizing file installer a collection of command line extensions and other useful tools. The PIKT binaries are written using a combination of C, lex flex , and yacc bison . PIKT s configuration combines free form text files, http pikt.org pikt ref ref.5.script outline.html Pikt scripts , and programs written in other popular scripting languages. PIKT is in widespread use at thousands of sites around the world, although its popularity is diminished by the perception that it is complicated to set up and difficult to administer. Recent changes have mitigated the complexity and difficulty somewhat. PIKT s user community is low profile and not very active. PIKT was first released publicly on October 17, 1998, and has undergone numerous revisions since then. As of 2008 , it is still being actively maintained. Project Name PIKT is an acronym Problem Informant Killer Tool. PIKT is like a military picket, a group of soldiers or a single soldier stationed, usually at an outpost, to guard a body of troops from surprise attack http www.merriam webster.com Webster s ... more details
Phoenix framework , being developed at Microsoft Research , is a framework for developing compiler s as well as program analysis, testing and optimization tools, to be used as the back end for future compiler technologies from Microsoft . ref cite web url http research.microsoft.com phoenix title Phoenix Academic Program accessdate 2007 11 16 ref It is also available as an Software Development Kit SDK , a pre release build of which has been made accessible, to create compilers and code analysis tools using the Phoenix framework. Overview Phoenix defines an intermediate representation IR for programs, using Abstract syntax tree AST s, control flow graph s, and an exception handling model. For any program to be handled by Phoenix, it needs to be converted to this representation. The specification for these file type specific converters, called file readers in Phoenix terminology, is also specified. Phoenix comes included with readers for Portable Executable binary files, Common Intermediate Language CIL and the output of the Visual C front end. ref name backend cite web url https connect.microsoft.com content content.aspx?ContentID 4527&SiteID 214 title Phoenix Compiler Backend accessdate 2007 11 16 ref Readers for other languages can be written using the Phoenix SDK, though separate tools such as lex software lex and yacc need to be used to write the Lexical analysis lexer and parser , respectively. Once the program has been converted to the IR, the analysis and optimization tools can operate on that form. Phoenix includes a selection of tools including block counting, memory analysis, code coverage , Compiler analysis code analysis and Compiler optimization optimization . ref cite web url https connect.microsoft.com content content.aspx?ContentID 4526&SiteID 214 title Phoenix based tools accessdate 2007 11 16 ref The Phoenix SDK can be used to write and plug in other tools as well. Code generation compiler Code generation is handled by providing architecture specifi ... more details
Infobox software name CodeLite logo screenshot File Codelite2.0 Screenshot.png 250px centerthumb Codelite2.0 Screenshot caption Screenshot of CodeLite under Windows XP developer Eran Ifrah programming language C latest release version 3.5.5375 latest release date Release date and age 2011 12 28 latest preview version http sourceforge.net projects codelite files Downloads at SourceForge operating system Cross platform status Active genre Integrated development environment IDE license GNU General Public License GNU GPL website http www.codelite.org CodeLite is a free, open source, cross platform Integrated development environment IDE for the C C programming languages. ref http sourceforge.net projects codelite CodeLite on SourceForge ref History On August 2006 Eran Ifrah, CodeLite s author, started a project named CodeLite. The idea was to create a Autocomplete code completion library based on ctags , SQLite hence, Code Lite and a Yacc based parser that could be used by other IDEs. LiteEditor, a demo application, was developed for demonstrating CodeLite s functionalities. Eventually, LiteEditor evolved into CodeLite. General CodeLite is a free, open source, cross platform IDE for the C C programming languages using the wxWidgets toolkit. To comply with CodeLite s open source spirit, the program itself is compiled and debugged using only free tools MinGW and GDB for Mac OS X, Windows, Linux and FreeBSD, though CodeLite can execute any 3rd party compiler or tool that has a command line interface. CodeLite features project management workspace projects , code completion, code refactoring , source browsing, syntax highlight see http codelite.org Main ReadMore CodeLite Features page , Subversion software Subversion integration , Cscope cscope integration , UnitTest integration, an interactive debugger built over gdb and a source code editor based on Scintilla editing component Scintilla . CodeLite is distributed under the GNU General Public License v2 or Later. It is being ... more details
Unreferenced date August 2011 An LALR parser generator is a software tool that reads a BNF grammar and creates an LALR parser which is capable of parsing files written in the computer language defined by the BNF grammar. LALR parser s are desirable because they are very fast and small in comparison to other types of parsers. There are other types of parser generator s, such as SLR, LR, GLR and LL parser generators. What differentiates one from another is the type of BNF grammar which they are capable of accepting and the type of parsing algorithm which is used in the generated parser. Obviously, an LALR parser generator accepts an LALR grammar as input and generates a parser that uses an LALR parsing algorithm which is driven by LALR parser tables . In practice, LALR offers a good solution, because LALR 1 grammars are more powerful than SLR 1 and LL 1 grammars. LR 1 grammars are more powerful than LALR 1 , however, canonical LR 1 parsers can be extremely large in size and are considered not practical. Minimal LR 1 parsers are small in size and comparable to LALR 1 parsers. History Frank DeRemer invented LALR parsers with his PhD dissertation, called Practical LR k Translators , in 1969, at MIT. This was an important breakthrough, because LR k translators, as defined by Donald Knuth in his 1965 paper, On the Translation of Languages from Left to Right , were much too large for implementation on computer systems in the 1960s and 70 s. An early LALR parser generator and probably the most popular one for many years was yacc , created by Stephen Johnson in 1975 at AT&T Labs. Another, TWS , was created by Frank DeRemer and Tom Pennello. Today, there are many LALR parser generators available. See also Comparison of parser generators For a more complete list, which also includes LL, SLR, GLR and LR parser generators. External links http www.cs.dartmouth.edu mckeeman cs48 mxcom doc knuth65.pdf On the translation of languages from left to right, Knuth, D.E., Information and C ... more details
Multiple issues primarysources October 2007 refimprove October 2007 Hindawi Programming System hereafter referred to as HPS is a suite of open source programming languages . It allows non English medium literates to learn and write computer programs . It is a scalable system which supports many programming paradigms . ref http w3.linux magazine.com issue 76 Linux World News.pdf Review of Hindawi Linux Magazine ref Shaili Prathmik or Indic BASIC and Indic LOGO are for beginners who want to start with computer programming . On the higher end it supports Shaili Guru Indic C , Shaili Shraeni Indic C , Shaili Yantrik Indic Assembly language Assembly , Shaily Shabda Indic Lex programming tool Lex , Shaili Vyaakaran Shaili Vyaaka Indic Yacc , and Shaili Kritrim, which is an Indic programming language targeting JVM . Mechanism and algorithms HPS uses Romenagri transliteration to first convert the high level source code into a compiler acceptable format and then uses an existing compiler to produce machine code. History The original contributors to HPS were Abhishek Choudhary and Sweta Karwa, who also developed APCISR and Romenagri Initial public release 15 August 2004 Release of version 2 by the ex education minister of Bihar , Dr. Ram Prakash Mahto 15 August 2005 Release of Linux port under Sarai fellowship 16 August 2006 Awards and recognition Computer Society of India s National Young IT Professional Award 2005 Sarai CSDS FLOSS fellowship http www.sarai.net fellowships floss floss fellowships 2005 2006 Hindawi is recognised by TDIL , Government of India. Hindawi was shortlisted for Manthan Award 2007 References Reflist External links http hindawi.in Hindawi Project Website http sf.net projects hindawi Hindawi Project on Sourceforge http tdil.mit.gov.in asp files products.asp?currentPage 16 TDIL mention of Hindawi http www.itvidya.com topic computer programming suite An independent review of Linux port of Hindawi http www.localisationlabs.com Localisation 20Articles.aspx? ... more details
refimprove date November 2011 The following is a comparison of cloud software . General information class wikitable sortable style width auto text align center font size 95 table layout fixed line height 1.25 Software Initial release date License s Written in As a service Local installations fluid Operations 2009 03 01 Proprietary Java, C yes ? AppScale ref Urquhart, James June 22, 2009 . http news.cnet.com 8301 19413 3 10270365 240.html The new generation of cloud development platforms. http news.cnet.com CNET News . Accessed November 2011. ref 2009 03 07 BSD License Python, Ruby, Go yes yes Cloud Foundry 2011 04 12 Apache License Ruby, C yes yes Cloud.com ref Harris, Derrick Harris October 22, 2010 . http gigaom.com cloud microsoft joins openstack to add hyper v support Microsoft Joins OpenStack to Add Hyper V Support. http gigaom.com Gigaom.com . Accessed November 2011. ref 2010 05 04 Proprietary software Proprietary , GPL v3 Java, C yes ? Eucalyptus computing ref Prickett Timothy M. May 10, 2011 . http www.theregister.co.uk 2011 05 10 canonical ubuntu openstack Ubuntu eats OpenStack for clouds Eucalyptus leaves. http www.theregister.co.uk The Register . Accessed November 2011. ref 2008 05 29 Proprietary software Proprietary , GPL v3 Java, C yes ? Nimbus cloud computing 2009 01 09 Apache License Java, Python yes yes OpenNebula ref European Commission Expert Group Report January 26, 2010 . http cordis.europa.eu fp7 ict ssai docs cloud report final.pdf The Future of Cloud Computing ref 2008 03 ?? Apache License C , C, Ruby, Java, Shell script, lex, yacc yes yes OpenStack ref cite book last Pepple first Ken title Deploying OpenStack publisher O Reilly Media year 2011 month August isbn 1 4493 1105 9 ref 2010 10 21 Apache License Python yes yes Supported Hosts what the cloud software runs on class wikitable sortable style width auto text align center font size 95 table layout fixed line height 1.25 Software Linux Windows Bare Metal fluid Operations Yes Yes No AppScale ... more details
PARSER H source Since in this sample we use the reentrant version of both flex and yacc we are forced ... Programming Language GC Bash shell uses a yacc grammar for parsing the command input. It is distributed ... more details
for arbitrary languages. GOLD parser GOLD BNF parser. GNU bison GNU version of yacc. http www.rpatk.net web en onlinedemo.php RPA BNF parser. Online PHP demo parsing JavaScript, XML Yacc parser generator ... languages, file formats HTML , XML , CSS and others regular expression s, YACC . These are written ... more details
Refimprove date July 2009 An object language is a language which is the object of study in various fields including logic , linguistics , mathematics and theoretical computer science . The language being used to talk about an object language is called a metalanguage . An object language may be a formal language formal or natural language natural language. Types of object language Formal languages Mathematical logic and linguistics make use of metalanguages, which are languages for describing the nature of other languages. In mathematical logic, the object language is usually a formal language . The language which a metalanguage is used to describe is the object language. It is called that because that language is the object under discussion using the metalanguage. For instance, someone who says In French, you say Bonjour to greet someone uses English language English as a metalanguage to describe the object language French language French . Computer languages There are two ways the term object language can be used in computing a language which is the object of formal specification, and a language which is the object goal of a compiler or interpreter. Formal specification Main Specification language Computer languages are object languages of the metalanguage in which their specification is written. In computer science this is referred to as the specification language . Backus Naur Form was one of the earliest used specification languages. When compiler s are written using systems like lex software lex and yacc , the rules the programmer writes look much like a formal specification, but it is considered an implementation instead. Many programming language implementation s are not strictly the same as their specifications, adding features or making implementation dependent design decisions. Object Code Main Object file At their basic level, computers act on what is given to them through a limited set of instructions which are understood by their CPU s. In the earliest ... more details