|
Programming Languages Starting with E @ eIT.in
eIT.in – everything IT is in Here eIT Directory
|
|
Hot & Cool
Serkai – The Web Cooperative
AntiSE – The Anti Search Engine
GeoDig – Businesses by Geography
Quali5 – Own a Keyword Forever
Follars – Making Money from Open Source
Billion Dollar Questions – and answers @ Billdoll.com
The Anti Bush Register – sign the register now! Advt |
|
eIT.in – 100’s of categories, 1000’s of IT resources
|
|
Operating Systems, Programming & Development, Databases, Legacy & Mainframe, Internet |
|
Computer hardware and accessories, performance & maintenance, storage… |
|
Networking architecture, infrastructure, administration, standards & protocols…
|
|
ITIL, IT infrastructure management…
|
|
Information technology & software support, administration, software testing, data centers…
|
|
Information technology & software across industries
|
|
Information technology & software across functional domains
|
|
IT Organizations & Industry Network
IT associations & organizations, IT related directories and trade networks…(Software Links Exchange)
|
|
Information technology & software architecture and design, IT strategy
|
|
IT news, updates, events & trade shows |
|
|
|
Related Links
Mainframes (Mainframe), AML, Analytics, Databases, EAI, BPO, CRM, Legacy, Legacy 2 Web, Middleware, IT Software Outsourcing & Offshoring Directory, Follars
|
|
Programming Languages Starting with E @ eIT.in
This section of eIT.in provides web resources for programming languages starting with E.
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!
..
..
Other IT Web Sites from eIT.in
Content derived from Wikipedia article on E Programming Language
E (programming language) From Wikipedia, the free encyclopedia
For the unrelated E programming language created by Wouter van Oortmerssen in 1991, see AmigaE. E Paradigm: multi-paradigm: object-oriented, distributed Appeared in: 1997 Designed by: Mark S. Miller Typing discipline: strong, static Major implementations: E-on-Java, E-on-CL Influenced by: Joule, Original-E, Java
E is an object-oriented programming language for secure distributed computing, created by Mark S. Miller and others at Electric Communities in 1997. E is mainly descended from the concurrent language Joule and from Original-E, a set of extensions to Java for secure distributed programming. E combines message-based computation with Java-like syntax. A concurrency model based on event loops and promises ensures that deadlock can never occur.
Contents
1 Philosophy 2 Computational model 3 Syntax and examples 4 See also 5 External links
Philosophy The entire language is designed with secure computing in mind; this is accomplished chiefly by strict adherence to the object-oriented computing model, which in its pure form has properties that support secure computing. The E language and its standard library employ a capability-based design philosophy throughout in order to help programmers build secure software and to enable software components to co-operate even if they don't fully trust each other. In E, object references serve as capabilities, hence capabilities add no computational or conceptual overhead costs. The language syntax is designed to be easy for people to audit for security flaws. For example, lexical scoping limits the amount of code that has to be examined for its effects on a given variable. As another example, the language uses the == operator for comparison and the := operator for assignment; to avoid the possibility of confusion, there is no = operator.
Computational model In E, all values are objects and computation is performed by sending messages to objects. Each object belongs to a vat (analogous to a process). Each vat has a single thread of execution, a stack frame, and an event queue. Distributed programming is just a matter of sending messages to remote objects (objects in other vats). All communication with remote parties is strongly encrypted by the E runtime. Arriving messages are placed into the vat's event queue; the vat's event loop processes the incoming messages one by one in order of arrival.
E has two ways of sending messages: the immediate call and the eventual send. An immediate call is just like a typical function or method call in a non-concurrent language: the sender waits until the receiver finishes and returns a value. An eventual send sends the message while producing a placeholder for the result called a promise. The sender proceeds immediately with the promise. Later, when the receiver finishes and yields a result, the promise resolves to the result. Since only eventual sends are allowed when communicating with remote objects, deadlocks cannot happen. In distributed systems, the promise mechanism also minimizes delays caused by network latency.
Syntax and examples E's syntax is most similar to Java, though it also bears some resemblance to Python. Variables are dynamically typed and lexically scoped. Unlike Java or Python, however, E is composed entirely of expressions. Here is an extremely simple E program:
println("Hello, world!") Here is a recursive function for computing the factorial of a number, written in E. Functions are defined using the def keyword.
def factorial(n :int) :int { if (n == 0) { return 1 } else if ( n > 0) { return n * factorial(n-1) } else { throw "invalid argument to factorial: "+n } } In the first line, :int is a guard that constrains the argument and result of the function. A guard is not quite the same thing as a type declaration; guards are optional and can specify more interesting constraints. The first :int ensures that the body of the function will only have to handle an integer argument. Without the second :int above, the function would not be able to return a value. Being able to see up front that information escapes out of the function is helpful for security auditing.
Since E is intended to support secure co-operation, the canonical example for E programs is the mint, a simple electronic money system in just a few lines of E. The following code defines a function that makes mints, where each mint has its own currency. Each mint can make purses that hold its currency, and any holder of two purses of the same currency can securely transfer money between the purses. By quick examination of the source code, an E programmer can easily verify that only mints may change the amount of money in circulation, that money can only be created and not destroyed, that mints can only create money of their own currency, and that only the holder of a purse can change its balance.
def makeMint(name) :any { def [sealer, unsealer] := makeBrandPair(name) def mint { to makePurse(var balance :(int >= 0)) :any { def decr(amount :(0..balance)) :void { balance -= amount } def purse { to getBalance() :int { return balance } to sprout() :any { return mint.makePurse(0) } to getDecr() :any { return sealer.seal(decr) } to deposit(amount :int, src) :void { unsealer.unseal(src.getDecr())(amount) balance += amount } } return purse } } return mint } Objects in E are defined with the def keyword, and within the object definition, the to keyword begins each method. The guard expressions in this example illustrate how to specify a value constraint (as in :(int >= 0) or :(0..balance)).
The mint example makes use of a built-in mechanism called a sealer. The function makeBrandPair creates two associated objects, a sealer and an unsealer, such that the sealer can seal an object in a box and the unsealer is the only object that can retrieve the contents of the box. See the E website for a more detailed explanation of this money example.
See also CapDesk, a desktop environment written in E
External links ERights.org Retrieved from http://en.wikipedia.org/wiki/E_%28programming_language%29
End of Wikipedia content, http://en.wikipedia.org/wiki/E_programming_language
Web Resources for E Programming Language
§ E · E · Elastic · Elf · Erlang · Eiffel · Euphoria
|
|
More eIT.in References
§ 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 § E · E · Elastic · Elf · Erlang · Eiffel · Euphoria
Main Sections @ eIT.in
o Mainframe & Legacy Operating Systems · Midrange · Programming & Development Directory § 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
|
|
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
United States of America - Alabama (AL) - Birmingham, Huntsville, Mobile, Montgomery, Arkansas (AR) - Little Rock, Arizona (AZ) - Phoenix, Tucson, California (CA) - Bakersfield, Fresno, Los Angeles, Modesto, Oakland, Orange Country, Riverside, Sacramento, Salinas, San Diego, San Francisco, San Jose, Santa Barbara, Santa Rosa, Stockton, Vallejo, Ventura, Visalia, Colorado (CO) - Colorado Springs, Denver, Connecticut (CT) - Hartford, Southern Connecticut (Southern Conn), Delaware (DE) – Wilmington, Florida (FL) - Daytona Beach, Fort Lauderdale, Fort Myers, Fort Pierce, Jacksonville, Lakeland, Melbourne, Miami, Orlando, Pensacola, Sarasota, Tampa, West Palm Beach, Georgia (GA) - Atlanta, Augusta, Hawaii (HI) – Honolulu, Iowa (IA) - Davenport, Des Moines, Idaho (ID) – Boise, Illinois (IL) - Chicago, Peoria, Rockford, Indiana (IN) - Fort Wayne, Gary, Indianapolis, Kansas (KS) – Wichita, Kentucky (KY) - Lexington, Louisville, Louisiana (LA) - Baton Rouge, Lafayette, New Orleans, Shreveport, Massachusetts (MA) - Boston, Springfield, Maryland (MD) – Baltimore, Michigan (MI) - Ann Arbor, Detroit, Flint, Grand Rapids, Kalamazoo, Lansing, Saginaw, Minnesota (MN) - Minneapolis – St. Paul, Missouri (MO) - Kansas City, St. Louis, Mississippi (MS) - Biloxi, Jackson, North Carolina (NC) - Charlotte, Greensboro, Hickory, Raleigh-Durham, Nebraska (NE) – Omaha, New Jersey (NJ) - Atlantic City, Bergen-Passaic, Jersey City, Mercer, Middlesex, Monmouth, Newark, New Mexico (NM) – Albuquerque, Nevada (NV) - Las Vegas, Reno, New York (NY) - Albany, Buffalo, Nassau-Suffolk, New York, Orange County, Rochester, Syracuse, Ohio (OH) - Akron, Canton, Cincinnati, Cleveland, Columbus, Dayton, Hamilton, Toledo, Youngstown, Oklahoma (OK) - Oklahoma City, Tulsa, Oregon (OR) - Portland, Salem, Pennsylvania (PA) - Allentown, Harrisburg, Lancaster, Philadelphia, Pittsburgh, Reading, Scranton, York, Rhode Island (RI) – Providence, South Carolina (SC) - Charleston, Columbia, Greenville, Tennessee (TN) - Chattanooga, Johnson City, Knoxville, Memphis, Nashville, Texas (TX) - Austin, Beaumont, Brownsville, Corpus Christi, Dallas, El Paso, Fort Worth, Houston, McAllen, San Antonio, Utah (UT) - Provo, Salt Lake City, Virginia (VA) - Norfolk, Richmond, Washington (WA) - Seattle, Spokane, Tacoma, Wisconsin (WI) - Appleton, Madison, Milwaukee, District of Columbia (DC) - Washington, DC
Canada Provinces - Alberta > Cities: Calgary, Edmonton; British Columbia > Cities: Victoria, Vancouver; Prince Edward Island; Manitoba > Cities: Winnipeg; New Brunswick; Nova Scotia > Cities: Halifax; Nunavut > Cities: Iqaluit; Ontario > Cities: Toronto, Ottawa, Hamilton, London, Kitchener, St. Catharines-Niagara, Windsor; Quebec > Cities: Quebec City, Montreal; Saskatchewan > Cities: Saskatoon, Regina Territories - Newfoundland and Labrador; Northwest Territories; Yukon Territory
Australia – Sydney, Melbourne, Brisbane, Perth, Adelaide, Newcastle, Gold Coast, Canberra, Wollongong, Sunshine Coast, Hobart, Geelong, Townsville, Cairns, Launceston
Europe - Luxembourg - Luxembourg City, Belgium – Brussels (Brussel), Antwerp (Antwerpen), Ghent (Gent, Gand), Charleroi, Liège (Liege), Austria - Vienna (Wien), Graz, Linz, Salzburg, Innsbruck, Netherlands - Amsterdam, Rotterdam, Utrecht, Eindhoven, Tilburg, ‘s-Gravenhage (sGravenhage), Groningen, France - Paris, Marseille, Lyon, Toulouse, Nice, Nantes, Strasbourg, Montpellier, Bordeaux, Germany - Berlin, Hamburg, Munich (München), Cologne (Köln), Frankfurt (Frankfurt am Main), Essen, Dortmund, Stuttgart, Düsseldorf, Bremen, Duisburg, Hannover, Nürnberg (Nuremberg), Dresden, Leipzig, Norway - Oslo, Bergen, Stavanger, Trondheim, Denmark – Copenhagen (Københavns), Aarhus (Århus), Odense, Aalborg (Ålborg), Sweden - Stockholm, Goteborg (Göteborg), Malmo (Malmö), Uppsala, Vasteras (Västerås), Finland – Helsinki (Helsingin), Espoo, Tampere (Tampereen), Vantaa, Turku, Oulu, Spain - Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Malaga, Murcia, Las Palmas, Bilbao, Switzerland – Zürich (Zurich), Geneva (Geneve, Genève), Basel, Bern (Berne), Lausanne, UK - London, Birmingham, Glasgow, Liverpool, Sheffield, Leeds, Bristol, Manchester, Edinburgh, Leicester, Italy - Rome (Roma), Milan (Milano), Napoli (Naples), Torino (Turin), Palermo, Bologna, Firenze (Florence), Genova (Genoa)
|
|
© 2006, From eIT.in – everything 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
|