BCPL Programming Language Directory @ eIT.in

 

eIT.ineverything IT is in Here   eIT Directory

 

 

 

Hot & Cool

 

SerkaiThe Web Cooperative

 

AntiSEThe Anti Search Engine

 

GeoDigBusinesses by Geography

 

Quali5Own a Keyword Forever

 

FollarsMaking Money from Open  Source

 

Billion Dollar Questions – and answers @ Billdoll.com

 

The Anti Bush Register – sign the register now!

 Advt 

 

eIT.in100’s of categories, 1000’s of IT resources

 

Software

 

Operating Systems, Programming & Development, Databases, Legacy & Mainframe, Internet

Hardware

 

Computer hardware and accessories, performance & maintenance, storage…

Networking & Communications

 

Networking architecture, infrastructure, administration, standards & protocols…

 

IT Infrastructure

 

ITIL, IT infrastructure management…

 

 

IT Support

 

Information technology & software support, administration, software testing, data centers…

 

IT in Industries

 

Information technology & software across industries

 

IT in Functions

 

Information technology & software across functional domains

 

IT Organizations & Industry Network

 

IT associations & organizations, IT related directories and trade networks…(Software Links Exchange)

 

IT Strategy & Design

 

Information technology & software architecture and design, IT strategy

 

IT News & Updates

 

IT news, updates, events & trade shows

IT Outsourcing Assistance


Use our services to locate the right vendor for a wide range of IT & software outsourcing domains

Related Links

 

Mainframes (Mainframe), AML, Analytics, Databases, EAI, BPO, CRM, Legacy, Legacy 2 Web, Middleware, IT Software Outsourcing & Offshoring Directory, Follars

 

 

BCPL Programming Directory @ eIT.in

 

This section of eIT.in provides web resources for BCPL programming language. 

 

Add Links: If you have a web site that you wish to include in this database, do let us know the details by sending a note about your URL to narsi@esource.in. We’ll quickly review the web site, and if found relevant, add it to the database. We look forward to web site owners and link exchange partners to submit URL. Thanks!

 

 

Looking for an outsourcing partner for software programming & development? Have you talked to us?

 

 

   

 

..

 

..

 

 

Other IT Web Sites from eIT.in

 

 

Content derived from Wikipedia article on BCPL Programming Language

 

BCPL

From Wikipedia, the free encyclopedia

 

 

BCPL (Basic Combined Programming Language) is a computer programming language designed by Martin Richards of the University of Cambridge in 1966; it was originally intended for use in writing compilers for other languages. Although not widely used now, it was very influential, because it was highly portable (see below), and because it inspired and influenced Dennis Ritchie's widely-used C programming language.

 

BCPL was a response to difficulties with its predecessor CPL, created during the early 1960s; Richards created BCPL by "removing those features of the full language which make compilation difficult". The first compiler implementation, for the IBM 7094 under CTSS, was written while Richards was visiting Project MAC at MIT in the spring of 1967. The language was first described in a paper presented to the 1969 Spring Joint Computer Conference.

 

The language is clean, powerful, and portable. It therefore proved possible to write small and simple compilers for it; reputedly some compilers could be run in 16 kilobytes. In addition, the Richards compiler, itself written in BCPL, was easily portable. BCPL was therefore a popular choice for bootstrapping a system.

 

A major reason for the compiler's portability lay in its structure. It was split into two parts: the front end parsed the source and generated O-code for a virtual machine, and the backend took the O-code and translated it into the code for the target machine. Only 1/5th of the compiler's code needed to be rewritten to support a new machine, a task that usually took between 2 and 5 man-months. Soon afterwards this structure became fairly common practice, cf. Pascal or Java, but the Richards BCPL compiler was the first to define a virtual machine for this purpose.

 

The language is unusual in having only one data type: a word, a fixed number of bits, usually chosen to align with the architecture's machine word and of adequate capacity to represent any valid storage address. This choice later proved to be a significant problem when BCPL was used on machines in which the smallest addressable item was not a word, but a byte.

 

The interpretation of any value was determined by the operators used to process the values. (For example, + added two values together treating them as integers; ! indirected through a value, effectively treating it as a pointer.) In order for this to work, the implementation provided no type checking. The Hungarian Notation was developed to help programmers avoid inadvertent type errors.

 

The mismatch between BCPL's word orientation and byte-oriented hardware was addressed in a number of ways. One was the provision of standard library routines for packing and unpacking words into byte strings. Later, two language features the bit field selection operator and the infix byte indirection operator (denoted by the '%' character) were added.

 

BCPL is reputedly the language in which the original hello world program was written. The first MUD was also written in BCPL [1].

 

Several operating systems were written partially or wholly in BCPL (for example, TRIPOS and significant parts of AmigaOS including Kickstart and the earliest versions of AmigaDOS). BCPL was also the initial language used in the seminal Xerox PARC Alto project, the first modern personal computer; among many other influential projects, the ground-breaking Bravo document preparation system was written in BCPL.

 

By 1970, implementations existed for the Honeywell 635 and 645, the IBM 360, the TX-2, the CDC 6400, the Univac 1108, the PDP-9, the KDF 9 and the Atlas 2. In 1979 implementations existed for at least 25 architectures; in 2001 it sees little use.

 

The philosophy of BCPL can be summarised by quoting from the book BCPL, the language and its compiler:

 

The philosophy of BCPL is not one of the tyrant who thinks he knows best and lays down the law on what is and what is not allowed; rather, BCPL acts more as a servant offering his services to the best of his ability without complaint, even when confronted with apparent nonsense. The programmer is always assumed to know what he is doing and is not hemmed in by petty restrictions.

The design, and philosophy, of BCPL strongly influenced B, which in turn influenced C. C is now the language of choice for systems programming.

 

 

Examples

These complete and compilable examples are from Martin Richards' BCPL distribution.

 

Printing factorials:

 

GET "libhdr"

 

LET start() = VALOF

{ FOR i = 1 TO 5 DO writef("fact(%n) = %i4*n", i, fact(i))

  RESULTIS 0

}

 

AND fact(n) = n=0 -> 1, n*fact(n-1)

Counting solutions to the N queens problem:

 

GET "libhdr"

 

GLOBAL { count:200; all:201  }

 

LET try(ld, row, rd) BE TEST row=all

 

                        THEN count := count + 1

 

                        ELSE { LET poss = all & ~(ld | row | rd)

                               UNTIL poss=0 DO

                               { LET p = poss & -poss

                                 poss := poss - p

                                 try(ld+p << 1, row+p, rd+p >> 1)

                               }

                             }

 

LET start() = VALOF

{ all := 1

 

  FOR i = 1 TO 12 DO

  { count := 0

    try(0, 0, 0)

    writef("Number of solutions to %i2-queens is %i5*n", i, count)

    all := 2*all + 1

  }

 

  RESULTIS 0

}

 

Sources

Martin Richards, The BCPL Reference Manual (Memorandum M-352, Project MAC, Cambridge, July, 1967)

Martin Richards, BCPL - a tool for compiler writing and systems programming (Proceedings of the Spring Joint Computer Conference, Vol 34, pp 557-566, 1969)

Martin Richards, Arthur Evans, Robert F. Mabee, The BCPL Reference Manual (MAC TR-141, Project MAC, Cambridge, 1974)

Martin Richards, C. Whitby-Strevens, BCPL, the language and its compiler (Cambridge University Press, 1980) ISBN 0-521-28681-6

 

External links

Martin Richards' BCPL distribution

Martin Richards's BCPL Reference Manual by Dennis M. Ritchie also includes some fascinating commentary from him about BCPL's influence on C

BCPL entry in the Jargon File

HTML formatter (syntax coloring) for BCPL (Example formatted program)

Retrieved from http://en.wikipedia.org/wiki/BCPL

 

End of Wikipedia content, http://en.wikipedia.org/wiki/BCPL

 

 

Web Resources for BCPL

 

 

 

 

 

More eIT.in References

 

 

o        Programming Languages

§         The A-Z of Programming Languages

§         A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

§         B

·         B

·         Basic

·         BCPL

·         BETA

·         BLISS

·         Blue

 

Main Sections @ eIT.in

 

·          Free & Open Source Software

·          Operating Systems

o        Mainframe & Legacy Operating Systems

·         Midrange

·         Mainframe Operating Systems

·          Databases

·          Programming & Development Directory

o        Programming Languages

§         The A-Z of Programming Languages

§         A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

·          Internet & Web

§         Web Servers

§         Application Servers

§         Server Side Scripting

§         Web Services

 

 

 

 

About eIT.in

 

eIT.in is a comprehensive directory for everything IT & Software. It contains over 500 categories, and well over 10,000 web resources

 

eIT.in provides directory and web links resources for the IT, software, programming & software development domains. It is intended to be useful for application, applications programmers & developers, software technology programmer & developer, databases software development, administrators & DBAs, application developers, strategy architect, design specialists and architects, migration, integration, customization consultants and customisation analysts, administration, maintenance & support professionals, outsourcing consultant, bespoke solutions programming developers & coders, project management & functional analyst, and for system administrators, testing & quality control engineers. It will make an effort to provide resources on tutorial/tutorials, guide, guides, tips, faq, faqs on these topics.

 

eIT.in content is available under GPL: All directory content at mainframe.in is under the General Public License (GPL). Under this license, anyone is free to copy & use any amount of directory content @ eIT.in, make changes to it and use it in any way they wish, as long as they also allow the same rights to anyone else for this content. The concept of GPL has been adapted from the GNU GPL of the Free Software Movement. To those who wish to use content from eIT.in, our only request is that they acknowledge the source and provide a link back to eIT.in. This is only a request!

 

Countries & Cities Where eIT.in Provides Assistance

 

eIT Cities: Bangalore, Chennai, Mumbai, Bhubaneswar, Mysore, Kolkaka, Delhi, Pune, Trivandrum, Hyderabad

 

You are the $$$ Section of eIT.in

 

Reference

 

GeoDig – Get Local!

 

Have you checked out the GeoDig directories for over 30 countries? GeoDig provides useful local and regional web resources for over 200 cities around the world. See the list of cities and countries for which GeoDig provides locality-specific web resources.

 

North America

USA - Alabama (AL) > Birmingham; Alaska; Arkansas (AR) > Little Rock; Arizona (AZ) > Phoenix, Las Vegas, Tucson; California (CA) > Los Angeles, San Francisco, Sacramento, Fresno, Bakersfield; Colorado, CO > Denver; Connecticut, CT > Hartford; District of Columbia, DC > Washington DC; Delaware (DE) > Wilmington; Florida > Miami, Orlando, Tampa, Orlando, Sarasota, West Palm Beach, Jacksonville; Georgia > Atlanta; Hawaii > Honolulu; Idaho; Illinois > Chicago; Indiana > Indianapolis; Iowa; Kansas (KS); Kentucky (KY) > Louisville; Louisiana (LA) > New Orleans, Baton Rouge; Maine; Maryland (MD) > Baltimore; Massachusetts > Boston, Springfield; Michigan > Detroit, Grand Rapids; Minnesota > Minneapolis-St. Paul; Mississippi (MS); Missouri (MO) > Kansas City, St. Louis; Montana; Nebraska (NE) > Omaha; Nevada (NV) > Las Vegas; New Hampshire; New Jersey (NJ) > Jersey City, Newark; New Mexico (NM) > Albuquerque; New York > New York, Buffalo, Rochester, Albany, Syracuse; North Carolina (NC) > Raleigh-Durham, Charlotte, Greensboro; North Dakota; Ohio> Columbus, Cincinnati, Cleveland, Toledo, Youngstown, Dayton; Oklahoma (OK) > Oklahoma City, Tulsa; Oregon > Portland; Pennsylvania > Philadelphia, Allentown, Pittsburgh, Harrisburg, Scranton, ; Rhode Island (RI) > Providence; South Carolina (SC) > Greenville; South Dakota; Tennessee (TN) > Knoxville, Memphis, Nashville; Texas > Austin, Dallas, Houston, San Antonio, El Paso, Austin, McAllen; Utah (UT) > Salt Lake City; Vermont; Virginia (VA) > Norfolk, Richmond; Washington > Seattle; West Virginia; Wisconsin (WI) > Milwaukee; Wyoming

Canada - Vancouver, Montreal, Toronto, Calgary, Ottawa-Gatineau, Edmonton, Quebec City, Winnipeg, Hamilton, London

 

You are the $$$ Section of eIT.in

 

Europe - UK - London, Glasgow, Manchester, Birmingham, Liverpool, Sheffield, Leeds, Bristol, Edinburgh, Leicester; France - Paris, Marseille, Lyon, Toulouse, Nice, Nantes, Strasbourg, Montpellier, Bordeaux; Germany - Frankfurt (Frankfurt am Main), Munich (München), Berlin, Düsseldorf, Hamburg, Cologne (Köln), Essen, Dortmund, Stuttgart, Bremen, Duisburg, Hannover, Nürnberg (Nuremberg), Dresden, Leipzig; Italy - Milan (Milano), Rome (Roma), Napoli (Naples), Torino (Turin), Palermo, Bologna, Firenze (Florence), Genova (Genoa); Spain - Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Malaga, Murcia, Las Palmas, Bilbao; Scandinavia - Finland - Helsinki (Helsingin), Espoo, Tampere (Tampereen), Vantaa, Turku, Oulu, Sweden - Stockholm, Goteborg (Göteborg), Malmo (Malmö), Uppsala, Vasteras (Västerås), Denmark - Copenhagen (Københavns), Aarhus (Århus), Odense, Aalborg (Ålborg), Norway - Oslo, Bergen, Stavanger, Trondheim; Benelux - Belgium - Brussels (Brussel), Antwerp (Antwerpen), Ghent (Gent, Gand), Charleroi, Liège (Liege), Netherlands - Amsterdam, Rotterdam, Utrecht, Eindhoven, Tilburg, ‘s-Gravenhage (sGravenhage), Groningen, Luxembourg - Luxembourg City; PortugalLisbon; GreeceAthens; HungaryBudapest; PolandWarsaw; Switzerland - Zürich (Zurich), Geneva (Geneve, Genève), Basel, Bern (Berne), Lausanne; Austria - Linz, Vienna (Wien), Graz, Linz, Salzburg, Innsbruck; IrelandDublin

 

Asia - India - Mumbai, New Delhi, Bangalore; China & Hong Kong - Hong Kong, Beijing, Shanghai, Tianjin, Wuhan, Shenyang, Guangzhou, Harbin, Xian; Japan - Tokyo, Osaka, Yokohama, Nagoya, Sapporo, Kyoto, Kobe, Fukuoka, Kawasaki, Hiroshima; South Korea - Seoul, Pusa, Taegu, Incheon, Taejeon, Taiwan - Taipei; Malaysia - Kuala Lumpur; Singapore; Russia - Moscow, St Petersburg

 

You are the $$$ Section of eIT.in

 

Middle East - Turkey - Istanbul, Israel - Tel Aviv

 

Oceania - Australia - Sydney, Melbourne, Brisbane, Perth, Adelaide

 

Africa - South Africa - Johannesburg, Cape Town, Durban

 

 

 

© 2006, From eIT.ineverything IT is in Here

 

eIT.in is a product of eSource India & Sourcing India

 

Other eSource & Sourcing sites: IT & Software (Dir, SAP), BPO, Chemicals, Textiles, Plant Oils, dotMobi, Billion Dollar Questions,

Biodiesel Encyclopedia, Linens, ideOS, Follars – Free, Open-source Dollars, Quali5.com – Own A Keyword Forever, AntiSE, Serkai, Leather & Hide, GeoDig