text:
Escape from New York

Escape from New York is a 1981 American independent science fiction action film co-written, co-scored and directed by John Carpenter, and starring Kurt Russell, Lee Van Cleef, Ernest Borgnine, Donald Pleasence, Isaac Hayes, Adrienne Barbeau and Harry Dean Stanton.

The film's storyline, set in the near-future world of 1997, concerns a crime-ridden United States, which has converted Manhattan Island in New York City into the country's sole maximum security prison. Air Force One is hijacked by anti-government insurgents who deliberately crash it into the walled borough. Ex- Special Forces and current federal prisoner Snake Plissken (Russell) is given just 24 hours to go in and rescue the President of the United States, after which, if successful, he will be pardoned.

Carpenter wrote the film in the mid-1970s in reaction to the Watergate scandal. After the success of Halloween (1978), he had enough influence to begin production and filmed it mainly in St. Louis, Missouri, on an estimated budget of $6 million. Debra Hill and Larry J. Franco served as the producers. The film was co-written by Nick Castle, who had collaborated with Carpenter by portraying Michael Myers in Halloween.

Released in the United States on July 10, 1981, the film received positive reviews from critics and was a commercial success, grossing more than $25.2 million at the box office. The film was nominated for four Saturn Awards, including Best Science Fiction Film and Best Direction. The film became a cult classic and was followed by a sequel, Escape from L.A. (1996), which was also directed and written by Carpenter and starred Russell.

Plot
In a dystopian 1988, amidst war between the United States and an alliance of China and the Soviet Union, Manhattan has been converted into a maximum security prison to address a 400% increase in crime. The island is walled off from the outside world and under heavy police surveillance.

In 1997, while flying President John Harker to a peace summit in Hartford, Air Force One is hijacked by a terrorist. The President is handcuffed with a briefcase and put into an escape pod that drops into Manhattan as the aircraft crashes.

Police are dispatched to rescue the President. Romero, a subordinate of the Duke of New York, a powerful crime boss, warns the President has been captured and will be killed if any further rescue attempts are made. Meanwhile, former Special Forces soldier Snake Plissken is about to be imprisoned in Manhattan after being convicted of robbing the Federal Reserve. Police Commissioner Bob Hauk offers a deal to Snake: if he rescues the President in time for the summit, Hauk will arrange a presidential pardon. To ensure his cooperation, Hauk has Snake injected with micro-explosives that will sever his carotid arteries in 22 hours. If Snake is successful, Hauk will neutralize the explosives.

Snake uses a stealth glider to land atop the World Trade Center, then follows the signal of the President's tracking device to a vaudeville theater, only to find that the tracker now hangs from the wrist of a deluded vagrant. Convinced the President is dead, Snake radios Hauk but is told he will be killed if he returns without the President. Inspecting the escape pod, Snake is ambushed by dozens of starving "crazies" and his radio is destroyed. He is rescued by "Cabbie", a jovial character who drives a taxi.

Cabbie takes Snake to Harold "Brain" Hellman, an adviser to the Duke and a former associate of Snake's. An engineer by trade, Brain has established a small gasoline refinery fueling the city's remaining cars; he tells Snake that the Duke plans to lead a mass escape across the 69th Street Bridge by using the President as a human shield. Snake forces Brain and his girlfriend Maggie to lead him to the Duke's hideout at Grand Central Terminal. Snake finds the President but gets shot in the leg with a crossbow bolt and is overpowered by the Duke's men.

While Snake is forced to fight against Duke's champion Slag in a deathmatch, Brain and Maggie kill Romero and flee with the President. Snake kills Slag and finds the trio trying to escape in the glider. Inmates drop the glider off the roof, forcing the group back down to street level where Cabbie offers to take them across the bridge. Cabbie reveals that he bartered with Romero for a cassette tape that contains information about nuclear fusion, intended to be an international peace offering. The President demands the cassette, but Snake retains it.

The Duke pursues them onto the bridge in his customized Cadillac, setting off mines as he tries to catch up. Brain guides Snake, but they hit a mine and Cabbie is killed. As they continue on foot, Brain accidentally stumbles onto another mine. A distraught Maggie sacrifices herself to slow down the Duke. Snake and the President reach the containment wall and guards hoist the President up. The Duke opens fire with Snake's MAC-10, killing the guards before Snake subdues him. As Snake is being lifted up by the rope the Duke attempts to shoot him, but the President takes up a dead guard's rifle and kills the Duke. Snake is hoisted to safety and Hauk's doctor removes the explosives with seconds to spare.

As the President prepares for a televised speech to the leaders at the summit meeting, he thanks Snake for saving him but offers only half-hearted regret for the deaths of his colleagues; Snake walks away in disgust. Hauk offers Snake a job as his deputy but he keeps walking. The President's speech commences and he plays the cassette. To his embarrassment, it only plays Cabbie's favorite song, "Bandstand Boogie". As Snake walks away a free man, he pulls the real cassette from his pocket and destroys it.

Cast
In addition, frequent Carpenter collaborators Nancy Stephens appeared as the "Hijacker" and Buck Flower appeared as the "Drunk with the president's tracker", respectively, while then-active professional wrestler Ox Baker played "Slag". The narrator was voiced by an uncredited Jamie Lee Curtis. Actor Joe Unger filmed scenes as Snake's partner-in-crime Bill Taylor, but they were cut from the final film.

Development and writing
Carpenter originally wrote the screenplay for Escape from New York in 1976, in the aftermath of Nixon's Watergate scandal. Carpenter said, "The whole feeling of the nation was one of real cynicism about the president." He wrote the screenplay, but no studio wanted to make it because, according to Carpenter, "[i]t was too violent, too scary, [and] too weird". He had been inspired by the film Death Wish, which was very popular at the time. He did not agree with this film's philosophy, but liked how it conveyed "the sense of New York as a kind of jungle, and I wanted to make a science-fiction film along these lines".

International Film Investors agreed to provide 50% of the budget, and Goldcrest Films signed a co-financing deal with them. They ended up providing £720,000 of the budget and making a profit of £672,000 from their investment after earning £1,392,000.

Casting
AVCO Embassy Pictures, the film's financial backer, preferred Charles Bronson, Tommy Lee Jones or Chuck Norris to play the role of Snake Plissken to Carpenter's choice of Kurt Russell, who was trying to overcome the "lightweight" screen image conveyed by his roles in several Disney comedies. Carpenter refused to cast Bronson on the grounds that he was too old, and because he worried that he could lose directorial control over the film with an experienced actor. At the time, Russell described his character as "a mercenary, and his style of fighting is a combination of Bruce Lee, The Exterminator, and Darth Vader, with Eastwood's vocal-ness." Russell suggested that the character should wear an eyepatch. All that matters to Snake, according to the actor, is "the next 60 seconds. Living for exactly that next minute is all there is." Russell used a rigorous diet and exercise program to develop a lean and muscular build. He also endeavored to stay in character between takes and throughout the shooting, as he welcomed the opportunity to get away from the Disney comedies he had done previously. He did find it necessary to remove the eyepatch between takes, as wearing it constantly seriously affected his depth perception.

Pre-production
Carpenter had just made Dark Star, but no one wanted to hire him as a director, so he assumed he would make it in Hollywood as a screenwriter. The filmmaker went on to do other films with the intention of making Escape later. After the success of Halloween, Avco-Embassy signed producer Debra Hill and him to a two-picture deal. The first film from this contract was The Fog. Initially, the second film he was going to make to finish the contract was The Philadelphia Experiment, but because of script-writing problems, Carpenter rejected it in favor of this project. However, Carpenter felt something was missing and recalls, "This was basically a straight action film. And at one point, I realized it really doesn't have this kind of crazy humor that people from New York would expect to see." He brought in Nick Castle, a friend from his film-school days at University of Southern California, who played "The Shape" in Halloween. Castle invented the Cabbie character and came up with the film's ending.

The film's setting proved to be a potential problem for Carpenter, who needed to create a decaying, semi-destroyed version of New York City on a shoestring budget. The film's production designer Joe Alves and he rejected shooting on location in New York City because it would be too hard to make it look like a destroyed city. Carpenter suggested shooting on a movie back lot, but Alves nixed that idea "because the texture of a real street is not like a back lot." They sent Barry Bernardi, their location manager (and associate producer), "on a sort of all-expense-paid trip across the country looking for the worst city in America," producer Debra Hill remembers.

Bernardi suggested East St. Louis, Illinois because it was filled with old buildings "that exist in New York now, and [that] have that seedy run-down quality" that the team was looking for. East St. Louis, sitting across the Mississippi River from the more prosperous St. Louis, Missouri, had entire neighborhoods burned out in 1976 during a massive urban fire. Hill said in an interview, "block after block was burnt-out rubble. In some places, there was absolutely nothing, so that you could see three and four blocks away." Also, Alves found an old bridge to serve as the "69th St. Bridge". The filmmaker purchased the Old Chain of Rocks Bridge for one dollar from the government and then gave it back to them, for the same amount, once production was completed, "so that they wouldn't have any liability," Hill remembers. Locations across the river in St. Louis were used, including Union Station and the Fox Theatre, both of which have since been renovated, as well as the building that would eventually become the Schlafly Tap Room microbrewery.

Filming
Carpenter and his crew persuaded the city to shut off the electricity to 10 blocks at a time at night. The film was shot from August to November 1980. It was a tough and demanding shoot for the filmmaker as he recalls. "We'd finish shooting at about 6 am and I'd just be going to sleep at 7 when the sun would be coming up. I'd wake up around 5 or 6 pm, depending on whether or not we had dailies, and by the time I got going, the sun would be setting. So for about two and a half months I never saw daylight, which was really strange." The gladiatorial fight to the death scene between Snake and Slag (played by professional wrestler Ox Baker) was filmed in the Grand Hall at St. Louis Union Station. Russell has stated, "That day was a nightmare. All I did was swing a [spiked] bat at that guy and get swung at in return. He threw a trash can in my face about five times ... I could have wound up in pretty bad shape." In addition to shooting on location in St. Louis, Carpenter shot parts of the film in Los Angeles. Various interior scenes were shot on a sound stage; the final scenes were shot at the Sepulveda Dam in Sherman Oaks. New York served as a location, as did Atlanta, to use their futuristic-looking rapid-transit system (the latter scenes were cut from the final film). In New York City, Carpenter persuaded federal officials to grant access to Liberty Island. "We were the first film company in history allowed to shoot on Liberty Island at the Statue of Liberty at night. They let us have the whole island to ourselves. We were lucky. It wasn't easy to get that initial permission. They'd had a bombing three months earlier and were worried about trouble".

Carpenter was interested in creating two distinct looks for the movie. "One is the police state, high tech, lots of neon, a United States dominated by underground computers. That was easy to shoot compared to the Manhattan Island prison sequences, which had few lights, mainly torch lights, like feudal England". Certain matte paintings were rendered by James Cameron, who was at the time a special-effects artist with Roger Corman's New World Pictures. Cameron was also one of the directors of photography on the film. As Snake pilots the glider into the city, three screens on his control panel display wireframe animations of the landing target on the World Trade Center and surrounding buildings. Carpenter initially wanted high-tech computer graphics, which were very expensive, even for such a simple animation. The effects crew filmed the miniature model set of New York City they used for other scenes under black light, with reflective tape placed along every edge of the model buildings. Only the tape is visible and appears to be a three-dimensional wireframe animation.

LaserDisc releases
Escape from New York was released on LaserDisc 10 times between 1983 and 1998. A 1994 Collector's Edition includes a commentary track by John Carpenter and Kurt Russell that is still included on more recent DVD releases of the film.

DVD releases
Escape from New York was released on DVD twice by MGM (USA), and once by Momentum Pictures (UK). One MGM release is a barebones edition containing just the theatrical trailer. Another version is the Collector's Edition, a two-disc set featuring a high definition remastered transfer with a 5.1 stereo audio track, two commentaries (one by John Carpenter and Kurt Russell, another by producer Debra Hill and Joe Alves), a making-of featurette, the first issue of a comic book series titled John Carpenter's Snake Plissken Chronicles, and the 10-minute Colorado bank robbery deleted opening sequence.

MGM's special edition of the 1981 film was not released until 2003 because the original negative had gone missing. The workprint containing deleted scenes finally turned up in the Hutchinson, Kansas, salt-mine film depository. The excised scenes feature Snake Plissken robbing a bank, introducing the character of Plissken and establishing a backstory. Director John Carpenter decided to add the original scenes into the special edition release as an extra only: "After we screened the rough cut, we realized that the movie didn't really start until Snake got to New York. It wasn't necessary to show what sent him there." The film has been released on the UMD format for Sony's PlayStation Portable.

Blu-ray release
On August 3, 2010, MGM Home Entertainment released Escape From New York as a bare-bones Blu-ray. Scream Factory, in association with Shout! Factory, released the film on a special edition Blu-ray on April 21, 2015.

Box office
Escape from New York opened in New York and Los Angeles July 10, 1981. The film grossed $25.2 million in American theaters in summer 1981.

Critical response
The film received generally positive reviews. Newsweek magazine wrote of Carpenter: "[He has a] deeply ingrained B-movie sensibility – which is both his strength and limitation. He does clean work, but settles for too little. He uses Russell well, however". In Time magazine, Richard Corliss wrote, "John Carpenter is offering this summer's moviegoers a rare opportunity: to escape from the air-conditioned torpor of ordinary entertainment into the hothouse humidity of their own paranoia. It's a trip worth taking". Vincent Canby, in his review for The New York Times, wrote, "[The film] is not to be analyzed too solemnly, though. It's a toughly told, very tall tale, one of the best escape (and escapist) movies of the season". On the other hand, in his negative review for the Chicago Reader, critic Dave Kehr, wrote "it fails to satisfy – it gives us too little of too much".

Christopher John reviewed Escape from New York in Ares Magazine #10 and commented that "It is solid summer entertainment of unusually high caliber. By not pretending to be more than it is, but by also not settling for any less than it could be, Escape becomes an exciting, fast-moving drama, the likes of which we haven't seen in years."

Legacy
Cyberpunk pioneer William Gibson credits the film as an influence on his 1984 science fiction novel Neuromancer. "I was intrigued by the exchange in one of the opening scenes where the Warden says to Snake 'You flew the Gullfire over Leningrad, didn't you?' It turns out to be just a throwaway line, but for a moment it worked like the best SF where a casual reference can imply a lot". Popular video game director Hideo Kojima copied aspects of the film for his Metal Gear series. Solid Snake heavily resembles the character Snake Plissken. In Metal Gear Solid 2: Sons of Liberty, Snake even uses the alias "Pliskin" to hide his real identity during most of the game. J. J. Abrams, producer of the 2008 film Cloverfield, mentioned that a scene in his film, which shows the head of the Statue of Liberty crashing into a New York street, was inspired by the poster for Escape from New York. Empire magazine ranked Snake Plissken number 29 in their "The 100 Greatest Movie Characters" poll.

Sequels
A sequel, Escape from L.A., was released in 1996, with Carpenter returning along with Russell, now also a producer and co-writer.

A remake for Escape from New York began development in 2007, when New Line Cinema won the rights to remake in a bidding war. Gerard Butler was attached to play Snake Plissken, Neal H. Moritz would produce through his Original Film company, and Ken Nolan would be in charge of the screenplay. Len Wiseman was announced to direct, but was later replaced by Brett Ratner, who also stepped down from the project. In April 2010, Variety reported that Breck Eisner was being looked at to direct a remake of Escape from New York, with David Kajganich and Allan Loeb providing revisions to the script. It was later announced in 2011 that New Line had dropped the remake completely. In January 2015, 20th Century Fox purchased the remake rights, with The Picture Company producing. In March 2017, it was announced that Robert Rodriguez would direct a remake of the film with Carpenter producing it. In February 2019, it was reported that Leigh Whannell would be writing the script after Luther creator Neil Cross completed a recent iteration of the project. Wyatt Russell, son of Kurt, was considered to portray Snake Plissken, but he expressed no interest in playing the role, considering it "career suicide." In November 2022, it was revealed that Radio Silence would be directing the film, with Andrew Rona, Alex Heineman, and Radio Silence producing, and Carpenter serving as an executive producer. They are currently searching for a writer. The next month, the film was confirmed to be a sequel, rather than a remake.

Novelization
In 1981, Bantam Books published a movie tie-in novelization written by Mike McQuay that adopts a lean, humorous style reminiscent of the film. The novel includes significant scenes that were cut from the film, such as the Federal Reserve Depository robbery that results in Snake's incarceration. The novel provides background on the relationship between Snake and Hauk—presenting the characters as disillusioned war veterans, and deepening the relationship that was only hinted in the film. The novel also explains how Snake lost his eye during the Battle for Leningrad in World War III, how Hauk became warden of New York, and Hauk's quest to find his crazed son, who lives somewhere in the prison. The novel gives greater detail on the world in which these characters live, at times presenting a future even bleaker than the one depicted in the film. It explains that the West Coast is a no-man's land, and the nation's population is gradually being driven insane by nerve gas as a result of World War III. The novel also clarifies that the president's plan for the cassette tape is not benevolent. Rather than presenting to the world a new energy source in the form of nuclear fusion (as claimed in the film), the tape actually reveals the successful development of a "fallout-free thermonuclear weapon, which would grant the US supremacy in the global conflict.

Comic books
Marvel Comics released the one-shot The Adventures of Snake Plissken in January 1997. The story takes place sometime between Escape from New York and before his famous Cleveland escape mentioned in Escape from L.A. Snake has robbed Atlanta's Centers for Disease Control of some engineered metaviruses and is looking for buyers in Chicago. Finding himself in a deal that is really a set-up, he makes his getaway and exacts revenge on the buyer for ratting him out to the United States Police Force. In the meantime, a government lab has built a robot called ATACS (Autonomous Tracking And Combat System) that can catch criminals by imprinting their personalities upon its program to predict and anticipate a specific criminal's every move. The robot's first test subject is America's public enemy number one, Snake Plissken. After a brief battle, the tide turns when ATACS copies Snake to the point of fully becoming his personality. Now recognizing the government as the enemy, ATACS sides with Snake. Unamused, Snake sucker punches the machine and destroys it. As ATACS shuts down, it can only ask him, "Why?" Snake just walks off, answering, "I don't need the competition".

In 2003, CrossGen published John Carpenter's Snake Plissken Chronicles, a four-part comic book miniseries. The story takes place a day or so after the events of Escape from New York. Snake has been given a military Humvee after his presidential pardon and makes his way to Atlantic City. Although the director's cut of Escape from New York shows Snake was caught after a bank job, this story has Snake finishing up a second heist that was planned before his capture. The job entails stealing the car in which John F. Kennedy was assassinated from a casino before delivering it to a buyer in the Gulf of Mexico. Snake partners with a man named Marrs who ends up double-crossing him. Left for dead in a sinking crab cage, Snake escapes and is saved by a passing fisherman named Captain Ron (an in-joke referring to Kurt Russell's 1992 comedy, Captain Ron). When Ron denies Snake's request to use his boat to beat Marrs to the robbery, Snake decides to kill him. When Snake ends up saving Ron from the Russian mob, who wants money, Ron changes his mind and helps Snake. Once at the casino, Snake comes face-to-face with Marrs and his men, who arrive at the same time, ending in a high-speed shootout. Snake gets away with the car and its actress portraying Jackie Kennedy, leaving Marrs to be caught by the casino owner, who cuts him a deal to bring his car back and live. After some trouble, Snake manages to finally get the car to the buyer's yacht, using Ron's boat, and is then attacked by Marrs. Following the firefight, the yacht and car are destroyed, Marrs and Captain Ron are dead, and Snake makes his escape in a helicopter with the 30 million credits owed to him for the job.

In 2014, BOOM! Studios began publishing an Escape from New York comic book by writer, Christopher Sebela. The first issue of the series was released on December 3, 2014, and the story picks up moments after the end of the film.

BOOM! released a crossover comics miniseries between Snake and Jack Burton titled Big Trouble in Little China/ Escape from New York in October 2016.

Board games
An Escape from New York board game was released in 1981 by TSR, Inc. Another board game was crowd-funded in 2022.

Cancelled anime
In 2003, Carpenter was planning an anime spin-off of Escape from New York, with Outlaw Star's Mitsuru Hongo slated to direct.

Cancelled video game
A video game adaptation was in development in 2004-2005.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Escape from New York


text:
Ethylene

Ethylene (IUPAC name: ethene) is a hydrocarbon which has the formula C2H4 or H2C\dCH2. It is a colourless, flammable gas with a faint "sweet and musky" odour when pure. It is the simplest alkene (a hydrocarbon with carbon–carbon double bonds).

Ethylene is widely used in the chemical industry, and its worldwide production (over 150 million tonnes in 2016 ) exceeds that of any other organic compound. Much of this production goes toward creating polythene, which is a widely used plastic containing polymer chains of ethylene units in various chain lengths. Production emits greenhouse gases, including methane from feedstock production and carbon dioxide from any non-sustainable energy used.

Ethylene is also an important natural plant hormone and is used in agriculture to induce ripening of fruits. The hydrate of ethylene is ethanol.

Structure and properties
This hydrocarbon has four hydrogen atoms bound to a pair of carbon atoms that are connected by a double bond. All six atoms that comprise ethylene are coplanar. The H-C-H angle is 117.4°, close to the 120° for ideal sp² hybridized carbon. The molecule is also relatively weak: rotation about the C-C bond is a very low energy process that requires breaking the π-bond by supplying heat at 50 °C.

The π-bond in the ethylene molecule is responsible for its useful reactivity. The double bond is a region of high electron density, thus it is susceptible to attack by electrophiles. Many reactions of ethylene are catalyzed by transition metals, which bind transiently to the ethylene using both the π and π* orbitals.

Being a simple molecule, ethylene is spectroscopically simple. Its UV-vis spectrum is still used as a test of theoretical methods.

Uses
Major industrial reactions of ethylene include in order of scale: 1) polymerization, 2) oxidation, 3) halogenation and hydrohalogenation, 4) alkylation, 5) hydration, 6) oligomerization, and 7) hydroformylation. In the United States and Europe, approximately 90% of ethylene is used to produce ethylene oxide, ethylene dichloride, ethylbenzene and polyethylene. Most of the reactions with ethylene are electrophilic addition.

Polymerization
Polyethylene production uses more than half of the world's ethylene supply. Polyethylene, also called polyethene and polythene, is the world's most widely used plastic. It is primarily used to make films in packaging, carrier bags and trash liners. Linear alpha-olefins, produced by oligomerization (formation of short-chain molecules) are used as precursors, detergents, plasticisers, synthetic lubricants, additives, and also as co-monomers in the production of polyethylenes.

Oxidation
Ethylene is oxidized to produce ethylene oxide, a key raw material in the production of surfactants and detergents by ethoxylation. Ethylene oxide is also hydrolyzed to produce ethylene glycol, widely used as an automotive antifreeze as well as higher molecular weight glycols, glycol ethers, and polyethylene terephthalate.

Ethylene oxidation in the presence of a palladium catalyst can form acetaldehyde. This conversion remains a major industrial process (10M kg/y). The process proceeds via the initial complexation of ethylene to a Pd(II) center.

Halogenation and hydrohalogenation
Major intermediates from the halogenation and hydrohalogenation of ethylene include ethylene dichloride, ethyl chloride, and ethylene dibromide. The addition of chlorine entails "oxychlorination", i.e. chlorine itself is not used. Some products derived from this group are polyvinyl chloride, trichloroethylene, perchloroethylene, methyl chloroform, polyvinylidene chloride and copolymers, and ethyl bromide.

Alkylation
Major chemical intermediates from the alkylation with ethylene is ethylbenzene, precursor to styrene. Styrene is used principally in polystyrene for packaging and insulation, as well as in styrene-butadiene rubber for tires and footwear. On a smaller scale, ethyltoluene, ethylanilines, 1,4-hexadiene, and aluminium alkyls. Products of these intermediates include polystyrene, unsaturated polyesters and ethylene-propylene terpolymers.

Oxo reaction
The hydroformylation (oxo reaction) of ethylene results in propionaldehyde, a precursor to propionic acid and n-propyl alcohol.

Hydration
Ethylene has long represented the major nonfermentative precursor to ethanol. The original method entailed its conversion to diethyl sulfate, followed by hydrolysis. The main method practiced since the mid-1990s is the direct hydration of ethylene catalyzed by solid acid catalysts:
 * C2H4 +  H2O  →    CH3CH2OH

Dimerization to butenes
Ethylene is dimerized by hydrovinylation to give n-butenes using processes licensed by Lummus or IFP. The Lummus process produces mixed n-butenes (primarily 2-butenes) while the IFP process produces 1-butene. 1-Butene is used as a comonomer in the production of certain kinds of polyethylene.

Fruit and flowering
Ethylene is a hormone that affects the ripening and flowering of many plants. It is widely used to control freshness in horticulture and fruits. The scrubbing of naturally occurring ethylene delays ripening. Adsorption of ethylene by nets coated in titanium dioxide gel has also been shown to be effective.

Niche uses
An example of a niche use is as an anesthetic agent (in an 85% ethylene/15% oxygen ratio). Another use is as a welding gas. It is also used as a refrigerant gas for low temperature applications under the name R-1150.

Production
Global ethylene production was 107 million tonnes in 2005, 109 million tonnes in 2006, 138 million tonnes in 2010, and 141 million tonnes in 2011. By 2013, ethylene was produced by at least 117 companies in 32 countries. To meet the ever-increasing demand for ethylene, sharp increases in production facilities are added globally, particularly in the Mideast and in China. Production emits greenhouse gas, namely significant amounts of carbon dioxide.

Industrial process
Ethylene is produced by several methods in the petrochemical industry. A primary method is steam cracking (SC) where hydrocarbons and steam are heated to 750–950 °C. This process converts large hydrocarbons into smaller ones and introduces unsaturation. When ethane is the feedstock, ethylene is the product. Ethylene is separated from the resulting mixture by repeated compression and distillation. In Europe and Asia, ethylene is obtained mainly from cracking naphtha, gasoil and condensates with the coproduction of propylene, C4 olefins and aromatics (pyrolysis gasoline). Other technologies employed for the production of ethylene include Fischer-Tropsch synthesis and methanol-to-olefins (MTO).

Laboratory synthesis
Although of great value industrially, ethylene is rarely synthesized in the laboratory and is ordinarily purchased. It can be produced via dehydration of ethanol with sulfuric acid or in the gas phase with aluminium oxide or activated alumina.

Biosynthesis
Ethylene is produced from methionine in nature. The immediate precursor is 1-aminocyclopropane-1-carboxylic acid.

Ligand
Ethylene is a fundamental ligand in transition metal alkene complexes. One of the first organometallic compounds, Zeise's salt is a complex of ethylene. Useful reagents containing ethylene include Pt(PPh3)2(C2H4) and Rh2Cl2(C2H4)4. The Rh-catalysed hydroformylation of ethylene is conducted on an industrial scale to provide propionaldehyde.

History
Some geologists and scholars believe that the famous Greek Oracle at Delphi (the Pythia) went into her trance-like state as an effect of ethylene rising from ground faults.

Ethylene appears to have been discovered by Johann Joachim Becher, who obtained it by heating ethanol with sulfuric acid; he mentioned the gas in his Physica Subterranea (1669). Joseph Priestley also mentions the gas in his Experiments and observations relating to the various branches of natural philosophy: with a continuation of the observations on air (1779), where he reports that Jan Ingenhousz saw ethylene synthesized in the same way by a Mr. Enée in Amsterdam in 1777 and that Ingenhousz subsequently produced the gas himself. The properties of ethylene were studied in 1795 by four Dutch chemists, Johann Rudolph Deimann, Adrien Paets van Troostwyck, Anthoni Lauwerenburgh and Nicolas Bondt, who found that it differed from hydrogen gas and that it contained both carbon and hydrogen. This group also discovered that ethylene could be combined with chlorine to produce the Dutch oil, 1,2-dichloroethane; this discovery gave ethylene the name used for it at that time, olefiant gas (oil-making gas.) The term olefiant gas is in turn the etymological origin of the modern word "olefin", the class of hydrocarbons in which ethylene is the first member.

In the mid-19th century, the suffix -ene (an Ancient Greek root added to the end of female names meaning "daughter of") was widely used to refer to a molecule or part thereof that contained one fewer hydrogen atoms than the molecule being modified. Thus, ethylene was the "daughter of ethyl". The name ethylene was used in this sense as early as 1852.

In 1866, the German chemist August Wilhelm von Hofmann proposed a system of hydrocarbon nomenclature in which the suffixes -ane, -ene, -ine, -one, and -une were used to denote the hydrocarbons with 0, 2, 4, 6, and 8 fewer hydrogens than their parent alkane. In this system, ethylene became ethene. Hofmann's system eventually became the basis for the Geneva nomenclature approved by the International Congress of Chemists in 1892, which remains at the core of the IUPAC nomenclature. However, by that time, the name ethylene was deeply entrenched, and it remains in wide use today, especially in the chemical industry.

Following experimentation by Luckhardt, Crocker, and Carter at the University of Chicago, ethylene was used as an anesthetic. It remained in use through the 1940s use even while chloroform was being phased out. Its pungent odor and its explosive nature limit its use today.

Nomenclature
The 1979 IUPAC nomenclature rules made an exception for retaining the non-systematic name ethylene; however, this decision was reversed in the 1993 rules, and it remains unchanged in the newest 2013 recommendations, so the IUPAC name is now ethene. In the IUPAC system, the name ethylene is reserved for the divalent group -CH2CH2-. Hence, names like ethylene oxide and ethylene dibromide are permitted, but the use of the name ethylene for the two-carbon alkene is not. Nevertheless, use of the name ethylene for H2C=CH2 (and propylene for H2C=CHCH3) is still prevalent among chemists in North America.

Greenhouse gas emissions
"A key factor affecting petrochemicals life-cycle emissions is the methane intensity of feedstocks, especially in the production segment." Emissions from cracking of naptha and natural gas(common in the US as gas is cheap there) depend a lot on the source of energy (for example gas burnt to provide high temperatures ) but that from naptha is certainly more per kg of feedstock. Both steam cracking and production from natural gas via ethane are estimated to emit 1.8 to 2kg of CO2 per kg ethylene produced, totalling over 260 million tonnes a year. This is more than all other manufactured chemicals except cement and ammonia. According to a 2022 report using renewable or nuclear energy could cut emissions by almost half.

Safety
Like all hydrocarbons, ethylene is a combustible asphyxiant. It is listed as an IARC class 3 carcinogen, since there is no current evidence that it causes cancer in humans.

title: Ethylene


text:
Eiffel (programming language)

Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software. Meyer conceived the language in 1985 with the goal of increasing the reliability of commercial software development; the first version becoming available in 1986. In 2005, Eiffel became an ISO-standardized language.

The design of the language is closely connected with the Eiffel programming method. Both are based on a set of principles, including design by contract, command–query separation, the uniform-access principle, the single-choice principle, the open–closed principle, and option–operand separation.

Many concepts initially introduced by Eiffel later found their way into Java, C#, and other languages. New language design ideas, particularly through the Ecma/ISO standardization process, continue to be incorporated into the Eiffel language.

Characteristics
The key characteristics of the Eiffel language include:

 * An object-oriented program structure in which a class serves as the basic unit of decomposition.
 * Design by contract tightly integrated with other language constructs.
 * Automatic memory management, typically implemented by garbage collection.
 * Inheritance, including multiple inheritance, renaming, redefinition, "select", non-conforming inheritance, and other mechanisms intended to make inheritance safe.
 * Constrained and unconstrained generic programming
 * A uniform type system handling both value and reference semantics in which all types, including basic types such as INTEGER, are class-based.
 * Static typing
 * Void safety, or static protection against calls on null references, through the attached-types mechanism.
 * Agents, or objects that wrap computations, closely connected with closures and lambda calculus.
 * Once routines, or routines evaluated only once, for object sharing and decentralized initialization.
 * Keyword-based syntax in the ALGOL/Pascal tradition but separator-free, insofar as semicolons are optional, with operator syntax available for routines.
 * Case insensitivity
 * Simple Concurrent Object-Oriented Programming (SCOOP) facilitates creation of multiple, concurrently active execution vehicles at a level of abstraction above the specific details of these vehicles (e.g. multiple threads without specific mutex management).

Design goals
Eiffel emphasizes declarative statements over procedural code and attempts to eliminate the need for bookkeeping instructions.

Eiffel shuns coding tricks or coding techniques intended as optimization hints to the compiler. The aim is not only to make the code more readable, but also to allow programmers to concentrate on the important aspects of a program without getting bogged down in implementation details. Eiffel's simplicity is intended to promote simple, extensible, reusable, and reliable answers to computing problems. Compilers for computer programs written in Eiffel provide extensive optimization techniques, such as automatic in-lining, that relieve the programmer of part of the optimization burden.

Background
Eiffel was originally developed by Eiffel Software, a company founded by Bertrand Meyer. Object-Oriented Software Construction contains a detailed treatment of the concepts and theory of the object technology that led to Eiffel's design.

The design goal behind the Eiffel language, libraries, and programming methods is to enable programmers to create reliable, reusable software modules. Eiffel supports multiple inheritance, genericity, polymorphism, encapsulation, type-safe conversions, and parameter covariance. Eiffel's most important contribution to software engineering is design by contract (DbC), in which assertions, preconditions, postconditions, and class invariants are employed to help ensure program correctness without sacrificing efficiency.

Eiffel's design is based on object-oriented programming theory, with only minor influence of other paradigms or concern for support of legacy code. Eiffel formally supports abstract data types. Under Eiffel's design, a software text should be able to reproduce its design documentation from the text itself, using a formalized implementation of the "Abstract Data Type".

Implementations and environments
EiffelStudio is an integrated development environment available under either an open source or a commercial license. It offers an object-oriented environment for software engineering. EiffelEnvision is a plug-in for Microsoft Visual Studio that allows users to edit, compile, and debug Eiffel projects from within the Microsoft Visual Studio IDE. Five other open source implementations are available: "The Eiffel Compiler" tecomp; Gobo Eiffel; SmartEiffel, the GNU implementation, based on an older version of the language; LibertyEiffel, based on the SmartEiffel compiler; and Visual Eiffel.

Several other programming languages incorporate elements first introduced in Eiffel. Sather, for example, was originally based on Eiffel but has since diverged, and now includes several functional programming features. The interactive-teaching language Blue, forerunner of BlueJ, is also Eiffel-based. The Apple Media Tool includes an Eiffel-based Apple Media Language.

Specifications and standards
The Eiffel language definition is an international standard of the ISO. The standard was developed by ECMA International, which first approved the standard on 21 June 2005 as Standard ECMA-367, Eiffel: Analysis, Design and Programming Language. In June 2006, ECMA and ISO adopted the second version. In November 2006, ISO first published that version. The standard can be found and used free of charge on the ECMA site. The ISO version is identical in all respects except formatting.

Eiffel Software, "The Eiffel Compiler" tecomp and Eiffel-library-developer Gobo have committed to implementing the standard; Eiffel Software's EiffelStudio 6.1 and "The Eiffel Compiler" tecomp implement some of the major new mechanisms—in particular, inline agents, assigner commands, bracket notation, non-conforming inheritance, and attached types. The SmartEiffel team has turned away from this standard to create its own version of the language, which they believe to be closer to the original style of Eiffel. Object Tools has not disclosed whether future versions of its Eiffel compiler will comply with the standard. LibertyEiffel implements a dialect somewhere in between the SmartEiffel language and the standard.

The standard cites the following, predecessor Eiffel-language specifications:

 * Bertrand Meyer: Eiffel: The Language, Prentice Hall, second printing, 1992 (first printing: 1991)
 * Bertrand Meyer: Standard Eiffel (revision of preceding entry), ongoing, 1997–present, at Bertrand Meyer's ETL3 page, and
 * Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall: first edition, 1988; second edition, 1997.
 * Bertrand Meyer: Touch of Class: Learning to Program Well with Objects and Contracts, Springer-Verlag, 2009 ISBN 978-3-540-92144-8 lxiv + 876 pages Full-color printing, numerous color photographs

The current version of the standard from June 2006 contains some inconsistencies (e.g. covariant redefinitions). The ECMA committee has not yet announced any timeline and direction on how to resolve the inconsistencies.

Overall structure
An Eiffel "system" or "program" is a collection of classes. Above the level of classes, Eiffel defines cluster, which is essentially a group of classes, and possibly of subclusters (nested clusters). Clusters are not a syntactic language construct, but rather a standard organizational convention. Typically an Eiffel program will be organized with each class in a separate file, and each cluster in a directory containing class files. In this organization, subclusters are subdirectories. For example, under standard organizational and casing conventions,  might be the name of a file that defines a class called X.

A class contains features, which are similar to "routines", "members", "attributes" or "methods" in other object-oriented programming languages. A class also defines its invariants, and contains other properties, such as a "notes" section for documentation and metadata. Eiffel's standard data types, such as,   and  , are all themselves classes.

Every system must have a class designated as "root", with one of its creation procedures designated as "root procedure". Executing a system consists of creating an instance of the root class and executing its root procedure. Generally, doing so creates new objects, calls new features, and so on.

Eiffel has five basic executable instructions: assignment, object creation, routine call, condition, and iteration. Eiffel's control structures are strict in enforcing structured programming: every block has exactly one entry and exactly one exit.

Scoping
Unlike many object-oriented languages, but like Smalltalk, Eiffel does not permit any assignment into attributes of objects, except within the features of an object, which is the practical application of the principle of information hiding or data abstraction, requiring formal interfaces for data mutation. To put it in the language of other object-oriented programming languages, all Eiffel attributes are "protected", and "setters" are needed for client objects to modify values. An upshot of this is that "setters" can and normally do, implement the invariants for which Eiffel provides syntax.

While Eiffel does not allow direct access to the features of a class by a client of the class, it does allow for the definition of an "assigner command", such as:

While a slight bow to the overall developer community to allow something looking like direct access (e.g. thereby breaking the Information Hiding Principle), the practice is dangerous as it hides or obfuscates the reality of a "setter" being used. In practice, it is better to redirect the call to a setter rather than implying a direct access to a feature like  as in the example code above.

Unlike other languages, having notions of "public", "protected", "private" and so on, Eiffel uses an exporting technology to more precisely control the scoping between client and supplier classes. Feature visibility is checked statically at compile-time. For example, (below), the "{NONE}" is similar to "protected" in other languages. Scope applied this way to a "feature set" (e.g. everything below the 'feature' keyword to either the next feature set keyword or the end of the class) can be changed in descendant classes using the "export" keyword.

Alternatively, the lack of a {x} export declaration implies {ANY} and is similar to the "public" scoping of other languages.

Finally, scoping can be selectively and precisely controlled to any class in the Eiffel project universe, such as:

Here, the compiler will allow only the classes listed between the curly braces to access the features within the feature group (e.g. DECIMAL, DCM_MA_DECIMAL_PARSER, DCM_MA_DECIMAL_HANDLER).

"Hello, world!"
A programming language's look and feel is often conveyed using a "Hello, world!" program. Such a program written in Eiffel might be:

This program contains the class. The constructor (create routine) for the class, named, invokes the   system library routine to write a     message to the output.

Design by contract
The concept of Design by Contract is central to Eiffel. The contracts assert what must be true before a routine is executed (precondition) and what must hold to be true after the routine finishes (post-condition). Class Invariant contracts define what assertions must hold true both before and after any feature of a class is accessed (both routines and attributes). Moreover, contracts codify into executable code developer and designers assumptions about the operating environment of the features of a class or the class as a whole by means of the invariant.

The Eiffel compiler is designed to include the feature and class contracts in various levels. EiffelStudio, for example, executes all feature and class contracts during execution in the "Workbench mode." When an executable is created, the compiler is instructed by way of the project settings file (e.g. ECF file) to either include or exclude any set of contracts. Thus, an executable file can be compiled to either include or exclude any level of contract, thereby bringing along continuous levels of unit and integration testing. Moreover, contracts can be continually and methodically exercised by way of the Auto-Test feature found in EiffelStudio.

The Design by Contract mechanisms are tightly integrated with the language and guide redefinition of features in inheritance:

 * Routine precondition: The precondition may only be weakened by inheritance; any call that meets the requirements of the ancestor meets those of the descendant.
 * Routine postcondition: The postcondition can only be strengthened by inheritance; any result guaranteed by the ancestor is still provided by the descendant.
 * Class invariant: Conditions that must hold true after the object's creation and after any call to an exported class routine. Because the invariant is checked so often, it makes it simultaneously the most expensive and most powerful form of condition or contract.

In addition, the language supports a "check instruction" (a kind of "assert"), loop invariants, and loop variants (which guarantee loop termination).

Void-safe capability
Void-safe capability, like static typing, is another facility for improving software quality. Void-safe software is protected from run time errors caused by calls to void references, and therefore will be more reliable than software in which calls to void targets can occur. The analogy to static typing is a useful one. In fact, void-safe capability could be seen as an extension to the type system, or a step beyond static typing, because the mechanism for ensuring void safety is integrated into the type system.

The guard against void target calls can be seen by way of the notion of attachment and (by extension) detachment (e.g. detachable keyword). The void-safe facility can be seen in a short re-work of the example code used above:

The code example above shows how the compiler can statically address the reliability of whether  will be attached or detached at the point it is used. Notably, the  keyword allows for an "attachment local" (e.g.  ), which is scoped to only the block of code enclosed by the if-statement construct. Thus, within this small block of code, the local variable (e.g. ) can be statically guaranteed to be non-void (i.e. void safe).

Features: commands and queries
The primary characteristic of a class is that it defines a set of features: as a class represents a set of run-time objects, or "instances", a feature is an operation on these objects. There are two kinds of features: queries and commands. A query provides information about an instance. A command modifies an instance.

The command-query distinction is important to the Eiffel method. In particular:

 * Uniform-Access Principle: from the point of view of a software client making a call to a class feature, whether a query is an attribute (field value) or a function (computed value) should not make any difference. For example,  could be an attribute accessed on the object , or it could be computed by a function that divides distance by time. The notation is the same in both cases, so that it is easy to change the class's implementation without affecting client software.
 * Command-Query Separation Principle: Queries must not modify the instance. This is not a language rule but a methodological principle. So in good Eiffel style, one does not find "get" functions that change something and return a result; instead there are commands (procedures) to change objects, and queries to obtain information about the object, resulting from preceding changes.

Overloading
Eiffel does not allow argument overloading. Each feature name within a class always maps to a specific feature within the class. One name, within one class, means one thing. This design choice helps the readability of classes, by avoiding a cause of ambiguity about which routine will be invoked by a call. It also simplifies the language mechanism; in particular, this is what makes Eiffel's multiple inheritance mechanism possible.

Names can, of course, be reused in different classes. For example, the feature plus (along with its infix alias "+") is defined in several classes: INTEGER, REAL, STRING, etc.

Genericity
A generic class is a class that varies by type (e.g. LIST [PHONE], a list of phone numbers; ACCOUNT [G->ACCOUNT_TYPE], allowing for ACCOUNT [SAVINGS] and ACCOUNT [CHECKING], etc.). Classes can be generic, to express that they are parameterized by types. Generic parameters appear in square brackets:

G is known as a "formal generic parameter". (Eiffel reserves "argument" for routines, and uses "parameter" only for generic classes.) With such a declaration G represents within the class an arbitrary type; so a function can return a value of type G, and a routine can take an argument of that type:

The  and   are "generic derivations" of this class. Permitted combinations (with,  ,  ,  ) are:

and  are the "actual generic parameters" in these generic derivations.

It is also possible to have 'constrained' formal parameters, for which the actual parameter must inherit from a given class, the "constraint". For example, in

a derivation  is valid only if   inherits from   (as it indeed does in typical Eiffel libraries). Within the class, having  constrained by   means that for   it is possible to apply to   all the features of , as in.

Inheritance basics
To inherit from one or more others, a class will include an  clause at the beginning:

The class may redefine (override) some or all of the inherited features. This must be explicitly announced at the beginning of the class through a  subclause of the inheritance clause, as in

See for a complete discussion of Eiffel inheritance.

Deferred classes and features
Classes may be defined with  rather than with   to indicate that the class may not be directly instantiated. Non-instantiatable classes are called abstract classes in some other object-oriented programming languages. In Eiffel parlance, only an "effective" class can be instantiated (it may be a descendant of a deferred class). A feature can also be deferred by using the  keyword in place of a   clause. If a class has any deferred features it must be declared as deferred; however, a class with no deferred features may nonetheless itself be deferred.

Deferred classes play some of the same role as interfaces in languages such as Java, though many object-oriented programming theorists believe interfaces are themselves largely an answer to Java's lack of multiple inheritance (which Eiffel has).

Renaming
A class that inherits from one or more others gets all its features, by default under their original names. It may, however, change their names through  clauses. This is required in the case of multiple inheritance if there are name clashes between inherited features; without renaming, the resulting class would violate the no-overloading principle noted above and hence would be invalid.

Tuples
Tuples types may be viewed as a simple form of class, providing only attributes and the corresponding "setter" procedure. A typical tuple type reads

and could be used to describe a simple notion of birth record if a class is not needed. An instance of such a tuple is simply a sequence of values with the given types, given in brackets, such as

Components of such a tuple can be accessed as if the tuple tags were attributes of a class, for example if  has been assigned the above tuple then   has value 3.5.

Thanks to the notion of assigner command (see below), dot notation can also be used to assign components of such a tuple, as in

The tuple tags are optional, so that it is also possible to write a tuple type as. (In some compilers this is the only form of tuple, as tags were introduced with the ECMA standard.)

The precise specification of e.g.  is that it describes sequences of at least three elements, the first three being of types ,  ,   respectively. As a result,  conforms to (may be assigned to) , to   and to   (without parameters), the topmost tuple type to which all tuple types conform.

Agents
Eiffel's "agent" mechanism wraps operations into objects. This mechanism can be used for iteration, event-driven programming, and other contexts in which it is useful to pass operations around the program structure. Other programming languages, especially ones that emphasize functional programming, allow a similar pattern using continuations, closures, or generators; Eiffel's agents emphasize the language's object-oriented paradigm, and use a syntax and semantics similar to code blocks in Smalltalk and Ruby.

For example, to execute the  block for each element of , one would write:

To execute  only on elements satisfying , a limitation/filter can be added:

In these examples,  and   are routines. Prefixing them with  yields an object that represents the corresponding routine with all its properties, in particular the ability to be called with the appropriate arguments. So if  represents that object (for example because   is the argument to  ), the instruction

will call the original routine with the argument, as if we had directly called the original routine:. Arguments to  are passed as a tuple, here.

It is possible to keep some arguments to an agent open and make others closed. The open arguments are passed as arguments to : they are provided at the time of agent use. The closed arguments are provided at the time of agent definition. For example, if  has two arguments, the iteration

iterates  for successive values of , where the second argument remains set to. The question mark  indicates an open argument;   is a closed argument of the agent. Note that the basic syntax  is a shorthand for   with all arguments open. It is also possible to make the target of an agent open through the notation  where   is the type of the target.

The distinction between open and closed operands (operands = arguments + target) corresponds to the distinction between bound and free variables in lambda calculus. An agent expression such as  with some operands closed and some open corresponds to a version of the original operation curried on the closed operands.

The agent mechanism also allows defining an agent without reference to an existing routine (such as,  ,  ), through inline agents as in

The inline agent passed here can have all the trappings of a normal routine, including precondition, postcondition, rescue clause (not used here), and a full signature. This avoids defining routines when all that's needed is a computation to be wrapped in an agent. This is useful in particular for contracts, as in an invariant clause that expresses that all elements of a list are positive:

The current agent mechanism leaves a possibility of run-time type error (if a routine with n arguments is passed to an agent expecting m arguments with m < n). This can be avoided by a run-time check through the precondition  of. Several proposals for a purely static correction of this problem are available, including a language change proposal by Ribet et al.

Once routines
A routine's result can be cached using the  keyword in place of. Non-first calls to a routine require no additional computation or resource allocation, but simply return a previously computed result. A common pattern for "once functions" is to provide shared objects; the first call will create the object, subsequent ones will return the reference to that object. The typical scheme is:

The returned object— in the example—can itself be mutable, but its reference remains the same.

Often "once routines" perform a required initialization: multiple calls to a library can include a call to the initialization procedure, but only the first such call will perform the required actions. Using this pattern initialization can be decentralized, avoiding the need for a special initialization module. "Once routines" are similar in purpose and effect to the singleton pattern in many programming languages, and to the Borg pattern used in Python.

By default, a "once routine" is called once per thread. The semantics can be adjusted to once per process or once per object by qualifying it with a "once key", e.g..

Conversions
Eiffel provides a mechanism to allow conversions between various types. The mechanisms coexists with inheritance and complements it. To avoid any confusion between the two mechanisms, the design enforces the following principle:

 * (Conversion principle) A type may not both conform and convert to another.

For example,  may conform to , but   converts to   (and does not inherit from it).

The conversion mechanism simply generalizes the ad hoc conversion rules (such as indeed between  and  ) that exist in most programming languages, making them applicable to any type as long as the above principle is observed. For example, a  class may be declared to convert to  ; this makes it possible to create a string from a date simply through

as a shortcut for using an explicit object creation with a conversion procedure:

To make the first form possible as a synonym for the second, it suffices to list the creation procedure (constructor)  in a   clause at the beginning of the class.

As another example, if there is such a conversion procedure listed from, then one can directly assign a tuple to a date, causing the appropriate conversion, as in

Exception handling
Exception handling in Eiffel is based on the principles of design by contract. For example, an exception occurs when a routine's caller fails to satisfy a precondition, or when a routine cannot ensure a promised postcondition. In Eiffel, exception handling is not used for control flow or to correct data-input mistakes.

An Eiffel exception handler is defined using the rescue keyword. Within the rescue section, the retry keyword executes the routine again. For example, the following routine tracks the number of attempts at executing the routine, and only retries a certain number of times:

This example is arguably flawed for anything but the simplest programs, however, because connection failure is to be expected. For most programs a routine name like attempt_connecting_to_server would be better, and the postcondition would not promise a connection, leaving it up to the caller to take appropriate steps if the connection was not opened.

Concurrency
A number of networking and threading libraries are available, such as EiffelNet and EiffelThreads. A concurrency model for Eiffel, based on the concepts of design by contract, is SCOOP, or Simple Concurrent Object-Oriented Programming, not yet part of the official language definition but available in EiffelStudio. CAMEO is an (unimplemented) variation of SCOOP for Eiffel. Concurrency also interacts with exceptions. Asynchronous exceptions can be troublesome (where a routine raises an exception after its caller has itself finished).

Operator and bracket syntax, assigner commands
Eiffel's view of computation is completely object-oriented in the sense that every operation is relative to an object, the "target". So for example an addition such as

is conceptually understood as if it were the method call

with target, feature   and argument.

Of course, the former is the conventional syntax and usually preferred. Operator syntax makes it possible to use either form by declaring the feature (for example in, but this applies to other basic classes and can be used in any other for which such an operator is appropriate):

The range of operators that can be used as "alias" is quite broad; they include predefined operators such as "+" but also "free operators" made of non-alphanumeric symbols. This makes it possible to design special infix and prefix notations, for example in mathematics and physics applications.

Every class may in addition have one function aliased to "[]", the "bracket" operator, allowing the notation  as a synonym for   where   is the chosen function. This is particularly useful for container structures such as arrays, hash tables, lists etc. For example, access to an element of a hash table with string keys can be written

"Assigner commands" are a companion mechanism designed in the same spirit of allowing well-established, convenient notation reinterpreted in the framework of object-oriented programming. Assigner commands allow assignment-like syntax to call "setter" procedures. An assignment proper can never be of the form  as this violates information hiding; you have to go for a setter command (procedure). For example, the hash table class can have the function and the procedure

Then to insert an element you have to use an explicit call to the setter command:

It is possible to write this equivalently as

(in the same way that  is a synonym for  ), provided the declaration of   now starts (replacement for [3]) with

This declares  as the assigner command associated with   and, combined with the bracket alias, makes [5] legal and equivalent to [4]. (It could also be written, without taking advantage of the bracket, as.

Note: The argument list of a's assigner is constrained to be: (a's return type;all of a's argument list...)

Lexical and syntax properties
Eiffel is not case-sensitive. The tokens,   and   all denote the same identifier. See, however, the "style rules" below.

Comments are introduced by  (two consecutive dashes) and extend to the end of the line.

The semicolon, as instruction separator, is optional. Most of the time the semicolon is just omitted, except to separate multiple instructions on a line. This results in less clutter on the program page.

There is no nesting of feature and class declarations. As a result, the structure of an Eiffel class is simple: some class-level clauses (inheritance, invariant) and a succession of feature declarations, all at the same level.

It is customary to group features into separate "feature clauses" for more readability, with a standard set of basic feature tags appearing in a standard order, for example:

In contrast to most curly bracket programming languages, Eiffel makes a clear distinction between expressions and instructions. This is in line with the Command-Query Separation principle of the Eiffel method.

Style conventions
Much of the documentation of Eiffel uses distinctive style conventions, designed to enforce a consistent look-and-feel. Some of these conventions apply to the code format itself, and others to the standard typographic rendering of Eiffel code in formats and publications where these conventions are possible.

While the language is case-insensitive, the style standards prescribe the use of all-capitals for class names, all-lower-case for feature names , and initial capitals for constants. The recommended style also suggests underscore to separate components of a multi-word identifier, as in.

The specification of Eiffel includes guidelines for displaying software texts in typeset formats: keywords in bold, user-defined identifiers and constants are shown in  , comments, operators, and punctuation marks in, with program text in   as in the present article to distinguish it from explanatory text. For example, the "Hello, world!" program given above would be rendered as below in Eiffel documentation:

Interfaces to other tools and languages
Eiffel is a purely object-oriented language but provides an open architecture for interfacing with "external" software in any other programming language.

It is possible for example to program machine- and operating-system level operations in C. Eiffel provides a straightforward interface to C routines, including support for "inline C" (writing the body of an Eiffel routine in C, typically for short machine-level operations).

Although there is no direct connection between Eiffel and C, many Eiffel compilers (Visual Eiffel is one exception) output C source code as an intermediate language, to submit to a C compiler, for optimizing and portability. As such, they are examples of transcompilers. The Eiffel Compiler tecomp can execute Eiffel code directly (like an interpreter) without going via an intermediate C code or emit C code which will be passed to a C compiler in order to obtain optimized native code. On .NET, the EiffelStudio compiler directly generates CIL (Common Intermediate Language) code. The SmartEiffel compiler can also output Java bytecode.

title: Eiffel (programming language)


text:
Ezra

Ezra (fl. 480–440 BCE) was an important Jewish scribe (sofer) and priest (kohen) in the early Second Temple period. In the Greek Septuagint, the name is rendered as Ésdrās, from which the Latin name Esdras comes. His name is probably a shortened Aramaic translation of the Hebrew name (Azaryahu), meaning "Yah helps".

In the Hebrew Bible, or the Christian Old Testament, Ezra is an important figure in the books of Ezra and Nehemiah, which he is said to have written and edited, respectively. According to tradition, Ezra was also the author of the Books of Chronicles and the Book of Malachi. Ezra was instrumental in restoring the Jewish scriptures and religion to the people after the return from the Babylonian Captivity, and is a highly respected figure in Judaism. He is regarded as a saint in the Roman Catholic Church, which sets his feast day as July 13, the same as that of his contemporary, Nehemiah. He is also venerated as a saint in the Eastern Orthodox Church, which sets his feast day as December 11.

In the Hebrew Bible
The canonical Book of Ezra and Book of Nehemiah are the oldest sources for the activity of Ezra, whereas many of the other books ascribed to Ezra (First Esdras, 3–6 Ezra) are later literary works dependent on the canonical books of Ezra and Nehemiah. The book of Ezra–Nehemiah was always written as one scroll. In late medieval Christian bibles, the single book was divided in two, as First and Second Ezra; and this division became Jewish practice in the first printed Hebrew bibles. Modern Hebrew Bibles call the two books Ezra and Nehemiah, as do other modern Bible translations. A few parts of the Book of Ezra (4:8 to 6:18 and 7:12–26) were written in Aramaic, and the majority in Hebrew, Ezra himself being skilled in both languages.

According to the Hebrew Bible he was a descendant of Seraiah, the last High Priest to serve in Solomon's Temple, and a close relative of Joshua, the first High Priest of the Second Temple. He returned from Babylonian captivity and reintroduced the Torah in Jerusalem. According to 1 Esdras, a Greek translation of the Book of Ezra still in use in Eastern Orthodox Church, he was also a High Priest. Rabbinic tradition supports the positions that Ezra was an ordinary member of the priesthood, and that he actually served as a Kohen Gadol. Ezra was living in Babylon when in the seventh year of Artaxerxes I, the Achaemenid emperor (c. 457 BCE), the emperor sent him to Jerusalem to teach the laws of God to any who did not know them. The Book of Ezra describes how he led a group of Judean exiles living in Babylon to their home city of Jerusalem where he is said to have enforced observance of the Torah.

When Ezra discovered that Jewish men had been marrying foreign pagan women, he tore his garments in despair and confessed the sins of Israel before God, then braved the opposition of some of his countrymen to purify the community by enforcing the dissolution of the sinful marriages. He was described as exhorting the Israelite people to be sure to follow the Torah Law so as not to intermarry with people of particular different religions, a set of commandments described in the Torah. Some years later, Artaxerxes sent Nehemiah, a Jewish noble in his service, as governor in Jerusalem with the task of rebuilding the city walls. Once this task was completed, Nehemiah had Ezra read the Torah to the assembled Israelites and the people and priests entered into a covenant to keep the law and separate themselves from all other peoples.

Burial place
Several traditions have developed over his place of burial. One tradition says that he is buried in Ezra's Tomb near Basra, Iraq while another tradition alleges that he is buried in Tadef near Aleppo in northern Syria.

According to Josephus, Ezra died and was buried "in a magnificent manner in Jerusalem." If the tradition that Ezra wrote under the pen name Malachi is correct, then he was probably buried in the Tomb of the Prophets, the traditional resting place of Malachi, along with two other prophets from Ezra's lifetime, Haggai and Zechariah.

1 Esdras
1 Esdras, probably from the late 2nd/early 1st centuries BCE, preserves a Greek text of Ezra and a part of Nehemiah distinctly different from that of Ezra–Nehemiah – in particular it eliminates Nehemiah from the story and gives some of his deeds to Ezra, as well as telling events in a different order. Scholars are divided on whether it is based on Ezra–Nehemiah, or reflects an earlier literary stage before the combination of Ezra and Nehemiah accounts.

Josephus
The first-century Jewish historian Josephus deals with Ezra in his Antiquities of the Jews. He uses the name Xerxes for Artaxerxes I reserving the name Artaxerxes for the later Artaxerxes II whom he identifies as the Ahasuerus of Esther, thus placing Ezra before the events of the book of Esther. Josephus' account of the deeds of Ezra derives entirely from 1 Esdras, which he cites as the 'Book of Ezra' in his numeration of the Hebrew bible. Contrariwise, Josephus does not appear to recognise Ezra-Nehemiah as a biblical book, does not quote from it, and relies entirely on other traditions in his account of the deeds of Nehemiah.

The apocalyptic Ezra traditions
The apocalyptic fourth book of Ezra (also sometimes called the 'second book of Esdras' or the 'third book of Esdras') was written c. CE 100, probably in Judeo-Aramaic, but now survives in Latin, Slavonic and Ethiopic. In this book, Ezra has a seven part prophetic revelation, converses with an angel of God three times and has four visions. Ezra, thirty years into the Babylonian Exile (4 Ezra 3:1 / 2 Esdras 1:1), recounts the siege of Jerusalem and the destruction of Solomon's Temple. The central theological themes are "the question of theodicy, God's justness in the face of the triumph of the heathens over the pious, the course of world history in terms of the teaching of the four kingdoms, the function of the law, the eschatological judgment, the appearance on Earth of the heavenly Jerusalem, the Messianic Period, at the end of which the Messiah will die, the end of this world and the coming of the next, and the Last Judgment." Ezra restores the law that was destroyed with the burning of the Temple in Jerusalem. He dictates 24 books for the public (i.e. the Hebrew Bible) and another 70 for the wise alone (70 unnamed revelatory works). At the end, he is taken up to heaven like Enoch and Elijah. Ezra is seen as a new Moses in this book.

There is also another work, thought to be influenced by this one, known as the Greek Apocalypse of Ezra.

In rabbinic literature
Traditionally Judaism credits Ezra with establishing the Great Assembly of scholars and prophets, the forerunner of the Sanhedrin, as the authority on matters of religious law. The Great Assembly is credited with establishing numerous features of contemporary traditional Judaism in something like their present form, including Torah reading, the Amidah, and celebration of the feast of Purim.

In Rabbinic traditions, Ezra is metaphorically referred to as the "flowers that appear on the earth" signifying the springtime in the national history of Judaism. A disciple of Baruch ben Neriah, he favored study of the Law over the reconstruction of the Temple and thus because of his studies, he did not join the first party returning to Jerusalem in the reign of Cyrus. According to another opinion, he did not join the first party so as not to compete, even involuntarily, with Joshua ben Jozadak for the office of High Priest of Israel.

According to Jewish tradition, Ezra was the writer of the Books of Chronicles, and is the same prophet known also as Malachi. There is a slight controversy within rabbinic sources as to whether or not Ezra had served as High Priest of Israel.

According to the Babylonian Talmud, Ezra the Scribe is said to have enacted ten standing laws and orders, which are as follows:
 * 1) That the public come together to read from the sefer Torah on Shabbatot during the time of the afternoon oblation (Minchah), because of those travelling merchants who loiter in the closed shops in the street corners, and who may have missed the biblical lections that were read during the weekdays.
 * 2) That the courts be opened throughout the Jewish townships on Mondays and Thursdays.
 * 3) That women would not wait beyond Thursday to launder their clothes, because of the honor due to the Sabbath day.
 * 4) That men would accustom themselves to eat [cooked] garlic on the eve of the Sabbath (believed to enhance love between a man and his wife).
 * 5) That women would rise up early on Friday mornings to bake bread, so that a piece of bread would be available for the poor.
 * 6) That Jewish women in every place be girded with a wide belt (waist band), whether from the front or from behind, out of modesty.
 * 7) That Jewish women, during their menses, wash and comb their hair three days prior to their purification in a ritual bath.
 * 8) That the traveling merchants make regular rounds into the Jewish villages and townships because of the honor due to the daughters of Israel (viz., so that jewelry can be purchased by the daughters of Israel).
 * 9) That Jewish women and/or girls, as a precautionary measure, be accustomed to conversing with one another while one of their party goes out to relieve herself in the outhouse.
 * 10) That men who may have suffered a seminal emission (especially after accompanying with their wives) be required to immerse themselves in a mikveh before being permitted to read from the scroll of the Law.

In the Syrian village of Tedef, a synagogue said to be the place where Ezra stopped over has been venerated by Jews for centuries. Another tradition locates his tomb near Basra, Iraq.

In Christian traditions
In Christian tradition, Ezra is considered to be the author of the book of Ezra and 1 and 2 Chronicles. Due to the strong similarity between the books of Malachi and Ezra, some Christian traditions adopt the Jewish view that Ezra was Malachi; Jerome was one prominent Christian who held this view.

Early Christian writers occasionally cited Ezra as author of the apocalyptic books attributed to him. Clement of Alexandria in his Stromata referred to Ezra as an example of prophetic inspiration, quoting a section from 2 Esdras. Where early Christian writers refer to the 'Book of Ezra' it is always the text of 1 Esdras that is being cited.

In Islam
In Islam, he is known as Uzair (عزير). He was mentioned in the Qur'an. Although he was not mentioned as one of the Prophets of Islam, he is considered one of them by some Muslim scholars, based on Islamic traditions. His tomb at Al-ʻUzer on the banks of the Tigris near Basra, Iraq, is a pilgrimage site for the local Marsh Arabs. Many Islamic scholars and modern Western academics do not view Uzer as "Ezra"; for example, Professor Gordon Darnell Newby associates Uzer with Enoch and Metatron.

Timeline
Scholars are divided over the chronological sequence of the activities of Ezra and Nehemiah. Ezra came to Jerusalem "in the seventh year of Artaxerxes the King". The text does not specify whether the king in the passage refers to Artaxerxes I (465–424 BCE) or to Artaxerxes II (404–359 BCE). Most scholars hold that Ezra lived during the rule of Artaxerxes I, though some have difficulties with this assumption: Nehemiah and Ezra "seem to have no knowledge of each other; their missions do not overlap", however, in Nehemiah 12, both are leading processions on the wall as part of the wall dedication ceremony. So, they clearly were contemporaries working together in Jerusalem at the time the wall and the city of Jerusalem was rebuilt in contrast to the previously stated viewpoint.;." These difficulties have led many scholars to assume that Ezra arrived in the seventh year of the rule of Artaxerxes II, i.e. some 50 years after Nehemiah. This assumption would imply that the biblical account is not chronological. The last group of scholars regard "the seventh year" as a scribal error and hold that the two men were contemporaries.

Historicity
Mary Joan Winn Leith in The Oxford History of the Biblical World believes that Ezra was a historical figure whose life was enhanced in the scripture and given a theological buildup. Gosta W. Ahlstrom argues the inconsistencies of the biblical tradition are insufficient to say that Ezra, with his central position as the 'father of Judaism' in the Jewish tradition, has been a later literary invention. Those who argue against the historicity of Ezra argue that the presentation style of Ezra as a leader and lawgiver resembles that of Moses. There are also similarities between Ezra the priest-scribe (but not high priest) and Nehemiah the secular governor on the one hand and Joshua and Zerubbabel on the other hand. The early 2nd-century BCE Jewish author Ben Sira praises Nehemiah, but makes no mention of Ezra.

Richard Friedman argues in his book Who Wrote the Bible? that Ezra is the one who redacted the Torah, and in fact effectively produced the first Torah. It has been argued that even if one does not accept the documentary hypothesis, Ezra was instrumental in the start of the process of bringing the Torah together.

One particular aspect of Ezra's story considered dubious historically is the account in Ezra 7 of his commission. According to it, Ezra was given truly exalted status by the king: he was seemingly put in charge of the entire western half of the Persian Empire, a position apparently above even the level of the satraps (regional governors). Ezra was given vast hoards of treasure to take with him to Jerusalem as well as a letter where the king seemingly acknowledges the sovereignty of the God of Israel. Yet, his actions in the story do not appear to be that of someone with near unlimited government power, and the alleged letter from a Persian king is written with Hebraisms and Jewish idiom.

Biblical scholar Tova Ganzel has recently argued that Ezra's status as both priest and scribe fits well in its fifth century BCE historical context in light of parallels with the Babylonian temple scribes of the Neo-Babylonian and Persian Periods.

title: Ezra