11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Eiffel 173As with private enterprise, there can also be importantonline privacy issues. Information that has been collecteddigitally is easy to transfer to other agencies or even (as inthe case <strong>of</strong> DMV information in some states) sold to privatecompanies. Having a clearly spelled-out privacy policy iscrucial.Besides keeping private what people expect to be private,government agencies must also provide informationthat helps ensure public accountability. Information collectedby government agencies is <strong>of</strong>ten subject to the Freedom<strong>of</strong> Information Act (FOIA). This may require that databe provided in a format that is readily accessible.Further ReadingBriefing Book Outline: E-Government. Advisory Committee to theCongressional Internet Caucus. Available online. URL: http://www.netcaucus.org/books/egov2001/. Accessed September18, 2007.Center for <strong>Technology</strong> in Government. Available online. URL:http://www.ctg.albany.edu. Accessed September 18, 2007.Cordella, Antonio. “E-Government: Towards the E-bureaucraticForm?” Journal <strong>of</strong> Information <strong>Technology</strong> 22 (2007): pp. 265–274.Government <strong>Computer</strong>ization (Open Directory). Availableonline. URL: http://www.dmoz.org/Society/Issues/<strong>Science</strong>_<strong>and</strong>_<strong>Technology</strong>/<strong>Computer</strong>s/Government_<strong>Computer</strong>ization/.Accessed September 18, 2007.LaVigne, Mark. “E-Government: Creating Tools <strong>of</strong> the Trade.”Available online. URL: http://www.netcaucus.org/books/egov2001/pdf/e-govt.pdf. Accessed September 18, 2007.Rosencrance, Linda. “User Satisfaction with Federal GovernmentWeb Sites down Slightly.” <strong>Computer</strong>world, September18, 2007. Available online. URL: http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=9037079. Accessed September 18, 2007.USA.gov: “Government Made Easy” [Official U.S. GovernmentPortal]. Available online. URL: http://www.usa.gov/. AccessedSeptember 18, 2007.EiffelEiffel is an interesting programming language developedby Bertr<strong>and</strong> Meyer <strong>and</strong> his company Eiffel S<strong>of</strong>tware in the1980s. The language was named for Gustav Eiffel, the architectwho designed the famous tower in Paris. The language<strong>and</strong> accompanying methodology attracted considerableinterest at s<strong>of</strong>tware engineering conferences.Eiffel fully supports (<strong>and</strong> in some ways pioneered) programmingconcepts found in more widely used languagestoday (see class <strong>and</strong> object-oriented programming). Syntactically,Eiffel emphasizes simple, reusable declarations thatmake the program easier to underst<strong>and</strong>, <strong>and</strong> tries to avoidobscure or lower-level code such as compiler optimizations.Program StructureAn Eiffel program is called a “system,” emphasizing itsstructure as a set <strong>of</strong> classes that represent the types <strong>of</strong> realworlddata that need to be processed. A simple class mightlook like this:classCOUNTERfeature—access counter valuetotal: INTEGERfeature—manipulate counter valueincrement is—increase counter by onedototal :- total + 1enddecrement is—decrease counter by onedototal := total - 1endreset is—reset counter to zerodototal := 0endend(In this listing language, keywords are in bold <strong>and</strong> userdefinedobjects are in italics. This formatting will be doneautomatically as the user enters the text.) Once the class isdefined, making an instance <strong>of</strong> it is very simple:my_counter COUNTERcreate my_counterThe Eiffel compiler itself compiles to an intermediate“bytecode” that, in the final stage, is compiled into C, takingadvantage <strong>of</strong> the ready availability <strong>of</strong> optimized C compilers.A unique feature <strong>of</strong> Eiffel is the ability to set up “contracts”that specify in detail how classes will interact withone another. (This goes well beyond the usual declarations<strong>of</strong> parameters <strong>and</strong> enforcement <strong>of</strong> data types.) For example,with the COUNTER class an “invariant” can be declaredsuch that total >= 0. This means that this condition mustalways remain true no matter what. A method can alsorequire that the caller meet certain conditions. After processing<strong>and</strong> before returning to the caller, the method canensure that a particular condition is true. The point <strong>of</strong> thesespecifications is that they make explicit what a given unit <strong>of</strong>code expects <strong>and</strong> what it promises to do in return. This canalso improve program documentation.Implementation <strong>and</strong> UsesEiffel’s proponents note that it is more than a language: Itis designed to provide consistent ways to revise <strong>and</strong> reuseprogram components throughout the s<strong>of</strong>tware developmentcycle. The current implementation <strong>of</strong> Eiffel is available forvirtually all platforms <strong>and</strong> has interfaces to C, C++, <strong>and</strong>other languages. This allows Eiffel to be used to create adesign framework for reusing existing s<strong>of</strong>tware componentsin other languages. Eiffel’s consistent object-oriented designalso makes it useful for documenting or modeling s<strong>of</strong>twareprojects (see modeling languages).Eiffel was developed around the same time as C++. Eiffelis arguably cleaner <strong>and</strong> superior in design to the latter language.However, two factors led to the dominance <strong>of</strong> C++:the ready availability <strong>of</strong> inexpensive or free compilers <strong>and</strong>the existence <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> programmers who alreadyknew C. Eiffel ended up being a niche language used for

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!