计算机专业外文文献论文翻译

本科毕业设计外文文献及译文文献、资料题目:Evolving Java Without Changingthe Language文献、资料来源:/articles/evolving-java-no-lang-change 文献、资料发表(出版)日期:院(部):专业:班级:姓名:学号:指导教师:翻译日期:外文文献:Evolving Java Without Changing the Language In "The Feel of Java" James Gosling stated that: Java is a blue collar language. It's not PhD thesis material but a language for a job. Java feels very familiar to many different programmers because I had a very strong tendency to prefer things that had been used a lot over things that just sounded like a good idea.The extraordinary success of Java offers weight to the notion that this was a sensible approach, and if it remains an important goal for Java today, then it makes sense that the language should continue to evolve relatively slowly. In addition to this, the fact that Java is a mature, widely used language causes its evolution to be fraught with difficulty. For one thing, each feature added to the language can change the way it feels in subtle and often unpredictable ways, risking alienating developers who have already adopted it as their language of choice. For another, a feature that makes perfect sense on its own may interact with other features of the language in awkward or unexpected ways. Worse, once a language feature has been added it is all but impossible to remove even if it turns out to be detrimental to the language as a whole. To justify adding a new feature, a language designer must be highly confident that it will be of long term benefit to the language rather than a short term or fashionable solution to a problem that rapidly becomes redundant. To mitigate the risk a language designer will typically experiment by creating a separate language or branch, such as the Pizza language used to experiment with Java's generics, prior to their implementation. The problem with this approach is that the audience for such experiments is both small and self-selecting; obviously they will all be interested in language features, and many may be academics or researchers. An idea which plays well to such an audience may still play badly when it is incorporated into the main language and general programmers start to work with it.To get a sense of this, consider the closures debate that became so heated for Java 7. Implementations for the main proposals (and some others) have been available for some time but no consensus has emerged. In consequence Sun decided that JDK 7 will not get full closures support. The core argument came down to whether Java had become as complex as it could afford to be when generics (and in particular the wildcard syntax) were added to Java 5; andwhether the addition of full support for closures was justified when Java already has a more limited form through anonymous inner classes. Two important use cases for adding full closures support were to simplify working with the fork/join API that is being added to JDK 7 to improve multi-core programming, and to help with resource clean-up. Josh Bloch's ARM block proposal, which is now expected to be in JDK 7 via Project Coin, offers an alternative solution to the latter problem. Dr. Cliff Click's research on a scalable, non-blocking programming style for Java offers an alternative approach to fork/join that may be more appropriate as the number of processor cores increases. If this were to happen, then the uses for closures in Java may arguably be too limited to justify their inclusion.It remains important though that a programming language continues to develop at some level. This article therefore examines three alternative techniques for adding new language features to Java that don't require changes to the language itself - using a custom Domain Specific Language, exploiting the Java 6 annotation processor to add optional language features via a library, and moving the syntactic sugar from the language to the IDE. Each offers the potential to allow a wide audience of mainstream developers to experiment with the new features over the medium term in a non-invasive manner, and the best ideas can then filter down for inclusion in the core language.Custom DSLsThe most widely discussed of the three is the Domain-Specific Language or DSL. There is some disagreement on exactly what the term means, but for the purposes of this discussion we'll refer to it simply as a language that has been created with a narrow focus to solve a particular problem, rather than as a general purpose language designed to solve every computing problem. As such we would expect a DSL to be non-Turing complete and for the most part this is the case. There are edge cases of course. Postscript, for example, is a Turing complete language but also qualifies as a DSL using our definition.As the above example also illustrates, the idea of a DSL is not new. Other familiar DSLs include Regular Expressions, XSLT, Ant, and JSP, all of which require some sort of custom parser to process them. Martin Fowler also suggests that fluent interfaces/APIs can be considered a second type of DSL, which he refers to as an internal DSL. His definition is that an internal DSL is developed directly within the host language. This was a common practice amongst bothLisp and Smalltalk programmers, and more recently the Ruby community has been popularising the technique.Whilst many well-known DSLs are commercially developed and maintained, some enterprise development teams have used the technique to create a language that allows them to rapidly explore aspects of their problem domain. It isn't however as common as it might be, perhaps because DSLs have a fairly intimidating barrier to entry. The team has to design the language, build the parser and possibly other tools to support the programming team, and train each new developer that joins the team on how the DSL works. Here the emergence of tools to specifically support DSL development could significantly change the landscape. Intentional Software's Intentional Domain Workbench, which has been in development longer than Java has been around, is the first significant implementation of such a tool. The project started life at Microsoft Research, and Dr. Charles Simonyi's 1995 paper "The Death of Computer Languages, the Birth of Intentional Programming" describes his vision. In 2002 Simonyi founded Intentional Software to continue working on his ideas and a hugely impressive video demo of the system is available. The product itself is at 1.0 status, but access is restricted to very limited partners.Other software houses are also exploring the concepts, amongst them JetBrains, well respected for their IntelliJ IDEA Java IDE, who have recently released the 1.0 version of their Meta Programming System (MPS). MPS doesn't use a parser, instead working with the Abstract Syntax Tree (AST) directly. It provides a text-like projectional editor which allows the programmer to manipulate the AST, and is used to write languages and programs. For each node in the tree a textual projection is created - as the programmer works with the projection, the change is reflected in the node. This approach allows you to extend and embed languages in any combination (often referred to as language composing) promoting language re-use. JetBrains are using the product internally and have recently released YouTrack, a bug tracking product developed using the system.The Java 6 Annotation ProcessorWhilst DSLs are less common in more mainstream languages such as Java than they are in Ruby, Smalltalk and Lisp, recent developments in the Java language, in particular the annotation processor which was added in Java 6, offer new possibilities for developers looking to use them in Java. The JPA 2.0 criteria API that will ship as part of Java EE 6, itself a DSL, offers anexample. Here the annotation processor builds up a metamodel type for each persistent class in the application. Whilst it would be perfectly possible for the developer to hand craft the metamodel in Java, it would be both tedious and error prone. The use of the annotation processor eliminates that pain and, since the annotation processor is built into Java 6, the approach requires no specific IDE support – an IDE delegates to the annotation processor triggered by the compiler, and the metadata model is generated on the fly.Using the annotation processor it is also possible for a library to add a new language feature. Bruce Chapman's prototype "no closures" proposal, for example, uses the technique to provide a mechanism for casting a method to a Single Abstract Method (SAM) type which compiles on top of Java 6. During our conversation Chapman pointed out that the SAM type also supports free variables, a key aspect of a closure:The method body can declare additional parameters beyond those required for the Single **********************************************.Theseparameterscanhavevaluesbound to them at the point where you obtain an instance of the SAM type, and are then passed to the method each time it is invoked.Chapman also set up the Rapt project to explore other uses of the technique, and has added implementations for two language changes - Multiline Strings and XML literals - that were considered for JDK 7 but won't now make it into the final release. Java could even get a form of closures support using this approach. When asked about this, Chapman said: We are just finishing a Swing project which we used it for. We have found a couple of minor bugs around generic types, one recently discovered remains to be fixed but other than that it seems quite nice to use, and nobody has been wanting to rush back to use conventional anonymous inner classes.Project Lombok, another project exploring the the annotation processor, pushes the technique still further. In effect Lombok uses annotation processing as a hook to run a Java agent that re-writes various javac internals based on the annotations. Since it is manipulating internal classes it is probably not suited to production use (internal classes can change even between minor releases of the JVM) but the project is an eye-opening example of just what can be done using the annotation processor, including:•Support for properties using a pair of @Getter and/or @Setter annotations with varying access levels, e.g. @Setter(AccessLevel.PROTECTED) private String name;•The @EqualsAndHashCode annotation, which generates hashCode() and equals() implementations from the fields of your object•The @ToString annotation, which generates an implementation of the toString() method •The @data method, which is equivalent to combining @ToString, @EqualsAndHashCode, @Getter on all fields, and @Setter on all non-final fields along with a constructor to initialize your final fieldsOther language experimentation, such as removing checked exceptions from Java, can also be done using this approach.Whilst the annotation processor technique opens up a welcome new route to language experimentation, care needs to be taken that the generated code can be easily read by developers, not just by the machine. Chapman made a number of suggestions during our conversation:Generate source code not bytecode, and pay attention to formatting (indenting especially) in the generated code. The compiler won't care whether it is all on one line or not, but your users will. I even sometimes add comments and javadoc in the source code generated by my annotation processors where appropriate.Hopefully if the technique becomes more prevalent IDEs will also make it easier to view the code that is to be generated at compile time.Syntactic Sugar in the IDEBruce Chapman also touches on our third technique - moving the syntactic sugar from the language to the IDE - in his blog and he elaborated on his ideas during our conversation. It is already routine for Java IDEs to create portions of boilerplate code for you such as the getters and setters of a class, but IDE developers are beginning to push the concept further. JetBrains' IntelliJ 9 offers a terse code block syntax for inner classes similar to a closure, which a developer can also type. Acting like code folds, these can then be expanded into the full anonymous inner classes which the compiler works with - this allows developers who prefer to stick with the standard anonymous inner class syntax to do so. A similar plug-in for Eclipse also exists. The key point here is that the "alternate" syntax is just a view of the actual code which the compiler and any source management tools continue to work with. Thus the developer should be able to switchviews between either form (like expanding or collapsing a code fold), and anyone without access to the definition of the sugar just sees the normal Java code. Chapman writes:There are many details to work out in order to make this easily accessible, but long term I see developers relatively easily defining a two way sugaring/desugaring transformation (jackpot is a good start for how this might be done), trying them out, evolving them and sharing the good ones with colleagues and the community. The advantages of this are almost the same as for a language change, without the disadvantages. The very best could become ubiquitous and then form the basis of an actual language change if necessary to get rid of any remaining "noise" not possible with this approach.Since syntactic sugar has to map to another (more verbose) language feature it cannot offer complete closure support; there are some features of BGGA closures for example that cannot be mapped to anonymous inner classes, and so they couldn't be implemented through this approach. Nevertheless the idea opens up the possibility of having various new syntaxes for representing anonymous inner classes, similar to BGGA syntax or FCM syntax, and allowing developers to pick the syntax they want to work with. Other language features, such as the null-safe Elvis operator, could certainly be done this way. To experiment further with the idea this NetBeans module also developed by Chapman, is what he describes as a "barely functional" prototype for Properties using this approach.ConclusionIn language development there is always a trade-off between stability and progress. The advantage that all of these techniques bring is that they don't affect the platform or the language. In consequence they are more tolerant to mistakes and are therefore more conducive to rapid and radical experimentation. With developers freely able to experiment we should begin to see more people separately tackling the poor signal to noise ratio of some common boilerplate such as the anonymous inner class syntax, mixing and evolving these ideas to some optimum form that adds the most value in the most cases. It will be fascinating to see how developers use these different approaches to push the Java platform in new directions.中文译文:不改变语言的前提下推进Java演进James Gosling在“The Feel of Java”中说过:Java是一种蓝领语言,它并不是博士的论文材料而是可以完成工作上的语言。

合集下载

计算机专业外文文献翻译6

计算机专业外文文献翻译6

外文文献翻译(译成中文2000字左右):As research laboratories become more automated,new problems are arising for laboratory managers.Rarely does a laboratory purchase all of its automation from a single equipment vendor. As a result,managers are forced to spend money training their users on numerous different software packages while purchasing support contracts for each. This suggests a problem of scalability. In the ideal world,managers could use the same software package to control systems of any size; from single instruments such as pipettors or readers to large robotic systems with up to hundreds of instruments. If such a software package existed, managers would only have to train users on one platform and would be able to source software support from a single vendor.If automation software is written to be scalable, it must also be flexible. Having a platform that can control systems of any size is far less valuable if the end user cannot control every device type they need to use. Similarly, if the software cannot connect to the customer’s Laboratory Information Management System (LIMS) database,it is of limited usefulness. The ideal automation software platform must therefore have an open architecture to provide such connectivity.Two strong reasons to automate a laboratory are increased throughput and improved robustness. It does not make sense to purchase high-speed automation if the controlling software does not maximize throughput of the system. The ideal automation software, therefore, would make use of redundant devices in the system to increase throughput. For example, let us assume that a plate-reading step is the slowest task in a given method. It would make that if the system operator connected another identical reader into the system, the controller software should be able to use both readers, cutting the total throughput time of the reading step in half. While resource pooling provides a clear throughput advantage, it can also be used to make the system more robust. For example, if one of the two readers were to experience some sort of error, the controlling software should be smart enough to route all samples to the working reader without taking the entire system offline.Now that one embodiment of an ideal automation control platform has been described let us see how the use of C++ helps achieving this ideal possible.DISCUSSIONC++: An Object-Oriented LanguageDeveloped in 1983 by BjarneStroustrup of Bell Labs,C++ helped propel the concept of object-oriented programming into the mainstream.The term ‘‘object-oriented programming language’’ is a familiar phrase that has been in use for decades. But what does it mean? And why is it relevant for automation software? Essentially, a language that is object-oriented provides three important programming mechanisms:encapsulation, inheritance, and polymorphism.Encapsulation is the ability of an object to maintain its own methods (or functions) and properties (or variables).For example, an ‘‘engine’’ object might contain methods for starting, stopping, or accelerating, along with properties for ‘‘RPM’’ and ‘‘Oil pressure’’. Further, encapsulation allows an object to hide private data from a ny entity outside the object. The programmer can control access to the object’s data by marking methods or properties as public, protected,or private. This access control helps abstract away the inner workings of a class while making it obvious to a caller which methods and properties are intended to be used externally.Inheritance allows one object to be a superset of another object. For example, one can create an object called Automobile that inherits from Vehicle. The Automobile object has access to all non-private methods and properties of Vehicle plus any additional methods or properties that makes it uniquely an automobile.Polymorphism is an extremely powerful mechanism that allows various inherited objects to exhibit different behaviors when the same named method is invoked upon them. For example, let us say our Vehicle object contains a method called CountWheels. When we invoke this method on our Automobile, we learn that the Automobile has four wheels.However, when we call this method on an object called Bus,we find that the Bus has 10 wheels.Together, encapsulation, inheritance, and polymorphism help promote code reuse, which is essential to meeting our requirement that the software package be flexible. A vendor can build up a comprehensive library of objects (a serial communications class, a state machine class, a device driver class,etc.) that can be reused across many different code modules.A typical control software vendor might have 100 device drivers. It would be a nightmare if for each of these drivers there were no building blocks for graphical user interface (GUI) or communications to build on. By building and maintaining a library of foundation objects, the vendor will save countless hours of programming and debugging time.All three tenets of object-oriented programming are leveraged by the use of interfaces. An interface is essentially a specification that is used to facilitate communication between software components, possibly written by different vendors. An interface says, ‘‘if your cod e follows this set of rules then my software component will be able to communicate with it.’’ In the next section we will see how interfaces make writing device drivers a much simpler task.C++ and Device DriversIn a flexible automation platform, one optimal use for interfaces is in device drivers. We would like our open-architecture software to provide a generic way for end users to write their own device drivers without having to divulge the secrets of our source code to them. To do this, we define a simplifiedC++ interface for a generic device, as shown here:class IDevice{public:virtual string GetName() ? 0; //Returns the name//of the devicevirtual void Initialize() ? 0; //Called to//initialize the devicevirtual void Run() ? 0; // Called to run the device};In the example above, a Ctt class (or object) called IDevice has been defined. The prefix I in IDevice stands for ‘‘interface’’. This class defines three public virtual methods: GetName, Initialize, and Run. The virtual keyword is what enables polymorphism, allowing the executing program to run the methods of the inheriting class. When a virtual method declaration is suffixed with ?0, there is no base class implementation. Such a method is referred to as ‘‘pure virtual’’. A class like IDevice that contains only pure virtual functions is known as an ‘‘abstract class’’, or an‘‘interface’’. The IDevice definition, along with appropriate documentation, can be published to the user community,allowing developers to generate their own device drivers that implement the IDevice interface.Suppose a thermal plate sealer manufacturer wants to write a driver that can be controlled by our software package. They would use inheritance to implement our IDevice interface and then override the methods to produce the desired behavior: class CSealer : public IDevice{public:virtual string GetName() {return ‘‘Sealer’’;}virtual void Initialize() {InitializeSealer();}virtual void Run() {RunSealCycle();}private:void InitializeSealer();void RunSealCycle();};Here the user has created a new class called CSealer that inherits from the IDevice interface. The public methods,those that are accessible from outside of the class, are the interface methods defined in IDevice. One, GetName, simply returns the name of the device type that this driver controls.The other methods,Initialize() and Run(), call private methods that actually perform the work. Notice how the privatekeyword is used to prevent external objects from calling InitializeSealer() and RunSealCycle() directly.When the controlling software executes, polymorphism will be used at runtime to call the GetName, Initialize, and Run methods in the CSealer object, allowing the device defined therein to be controlled.DoSomeWork(){//Get a reference to the device driver we want to useIDevice&device ? GetDeviceDriver();//Tell the world what we’re about to do.cout !! ‘‘Initializing ’’!! device.GetName();//Initialize the devicedevice.Initialize();//Tell the world what we’re about to do.cout !! ‘‘Running a cycle on ’’ !!device.GetName();//Away we go!device.Run();}The code snippet above shows how the IDevice interface can be used to generically control a device. If GetDevice-Driver returns a reference to a CSealer object, then DoSomeWork will control sealers. If GetDeviceDriver returns a reference to a pipettor, then DoSomeWork will control pipettors. Although this is a simplified example, it is straightforward to imagine how the use of interfaces and polymorphism can lead to great economies of scale in controller software development.Additional interfaces can be generated along the same lines as IDevice. For example, an interface perhaps called ILMS could be used to facilitate communication to and from a LIMS.The astute reader will notice that the claim that anythird party can develop drivers simply by implementing the IDevice interface is slightly flawed. The problem is that any driver that the user writes, like CSealer, would have to be linked directly to the controlling software’s exec utable to be used. This problem is solved by a number of existing technologies, including Microsoft’s COMor .NET, or by CORBA. All of these technologies allow end users to implement abstract interfaces in standalone components that can be linked at runtime rather than at design time. The details are beyond the scope of this article.中文翻译:随着研究实验室更加自动化,实验室管理人员出现的新问题。

计算机java外文翻译外文文献英文文献

计算机java外文翻译外文文献英文文献

英文原文:Title: Business Applications of Java. Author: Erbschloe, Michael, Business Applications of Java -- Research Starters Business, 2008DataBase: Research Starters - BusinessBusiness Applications of JavaThis article examines the growing use of Java technology in business applications. The history of Java is briefly reviewed along with the impact of open standards on the growth of the World Wide Web. Key components and concepts of the Java programming language are explained including the Java Virtual Machine. Examples of how Java is being used bye-commerce leaders is provided along with an explanation of how Java is used to develop data warehousing, data mining, and industrial automation applications. The concept of metadata modeling and the use of Extendable Markup Language (XML) are also explained.Keywords Application Programming Interfaces (API's); Enterprise JavaBeans (EJB); Extendable Markup Language (XML); HyperText Markup Language (HTML); HyperText Transfer Protocol (HTTP); Java Authentication and Authorization Service (JAAS); Java Cryptography Architecture (JCA); Java Cryptography Extension (JCE); Java Programming Language; Java Virtual Machine (JVM); Java2 Platform, Enterprise Edition (J2EE); Metadata Business Information Systems > Business Applications of JavaOverviewOpen standards have driven the e-business revolution. Networking protocol standards, such as Transmission Control Protocol/Internet Protocol (TCP/IP), HyperText Transfer Protocol (HTTP), and the HyperText Markup Language (HTML) Web standards have enabled universal communication via the Internet and the World Wide Web. As e-business continues to develop, various computing technologies help to drive its evolution.The Java programming language and platform have emerged as major technologies for performing e-business functions. Java programming standards have enabled portability of applications and the reuse of application components across computing platforms. Sun Microsystems' Java Community Process continues to be a strong base for the growth of the Java infrastructure and language standards. This growth of open standards creates new opportunities for designers and developers of applications and services (Smith, 2001).Creation of Java TechnologyJava technology was created as a computer programming tool in a small, secret effort called "the Green Project" at Sun Microsystems in 1991. The Green Team, fully staffed at 13 people and led by James Gosling, locked themselves away in an anonymous office on Sand Hill Road in Menlo Park, cut off from all regular communications with Sun, and worked around the clock for18 months. Their initial conclusion was that at least one significant trend would be the convergence of digitally controlled consumer devices and computers. A device-independent programming language code-named "Oak" was the result.To demonstrate how this new language could power the future of digital devices, the Green Team developed an interactive, handheld home-entertainment device controller targeted at the digital cable television industry. But the idea was too far ahead of its time, and the digital cable television industry wasn't ready for the leap forward that Java technology offered them. As it turns out, the Internet was ready for Java technology, and just in time for its initial public introduction in 1995, the team was able to announce that the Netscape Navigator Internet browser would incorporate Java technology ("Learn about Java," 2007).Applications of JavaJava uses many familiar programming concepts and constructs and allows portability by providing a common interface through an external Java Virtual Machine (JVM). A virtual machine is a self-contained operating environment, created by a software layer that behaves as if it were a separate computer. Benefits of creating virtual machines include better exploitation of powerful computing resources and isolation of applications to prevent cross-corruption and improve security (Matlis, 2006).The JVM allows computing devices with limited processors or memory to handle more advanced applications by calling up software instructions inside the JVM to perform most of the work. This also reduces the size and complexity of Java applications because many of the core functions and processing instructions were built into the JVM. As a result, software developersno longer need to re-create the same application for every operating system. Java also provides security by instructing the application to interact with the virtual machine, which served as a barrier between applications and the core system, effectively protecting systems from malicious code.Among other things, Java is tailor-made for the growing Internet because it makes it easy to develop new, dynamic applications that could make the most of the Internet's power and capabilities. Java is now an open standard, meaning that no single entity controls its development and the tools for writing programs in the language are available to everyone. The power of open standards like Java is the ability to break down barriers and speed up progress.Today, you can find Java technology in networks and devices that range from the Internet and scientific supercomputers to laptops and cell phones, from Wall Street market simulators to home game players and credit cards. There are over 3 million Java developers and now there are several versions of the code. Most large corporations have in-house Java developers. In addition, the majority of key software vendors use Java in their commercial applications (Lazaridis, 2003).ApplicationsJava on the World Wide WebJava has found a place on some of the most popular websites in the world and the uses of Java continues to grow. Java applications not only provide unique user interfaces, they also help to power the backend of websites. Two e-commerce giants that everybody is probably familiar with (eBay and Amazon) have been Java pioneers on the World Wide Web.eBayFounded in 1995, eBay enables e-commerce on a local, national and international basis with an array of Web sites-including the eBay marketplaces, PayPal, Skype, and -that bring together millions of buyers and sellers every day. You can find it on eBay, even if you didn't know it existed. On a typical day, more than 100 million items are listed on eBay in tens of thousands of categories. Recent listings have included a tunnel boring machine from the Chunnel project, a cup of water that once belonged to Elvis, and the Volkswagen that Pope Benedict XVI owned before he moved up to the Popemobile. More than one hundred million items are available at any given time, from the massive to the miniature, the magical to the mundane, on eBay; the world's largest online marketplace.eBay uses Java almost everywhere. To address some security issues, eBay chose Sun Microsystems' Java System Identity Manager as the platform for revamping its identity management system. The task at hand was to provide identity management for more than 12,000 eBay employees and contractors.Now more than a thousand eBay software developers work daily with Java applications. Java's inherent portability allows eBay to move to new hardware to take advantage of new technology, packaging, or pricing, without having to rewrite Java code ("eBay drives explosive growth," 2007).Amazon (a large seller of books, CDs, and other products) has created a Web Service application that enables users to browse their product catalog and place orders. uses a Java application that searches the Amazon catalog for books whose subject matches a user-selected topic. The application displays ten books that match the chosen topic, and shows the author name, book title, list price, Amazon discount price, and the cover icon. The user may optionally view one review per displayed title and make a buying decision (Stearns & Garishakurthi, 2003).Java in Data Warehousing & MiningAlthough many companies currently benefit from data warehousing to support corporate decision making, new business intelligence approaches continue to emerge that can be powered by Java technology. Applications such as data warehousing, data mining, Enterprise Information Portals (EIP's), and Knowledge Management Systems (which can all comprise a businessintelligence application) are able to provide insight into customer retention, purchasing patterns, and even future buying behavior.These applications can not only tell what has happened but why and what may happen given certain business conditions; allowing for "what if" scenarios to be explored. As a result of this information growth, people at all levels inside the enterprise, as well as suppliers, customers, and others in the value chain, are clamoring for subsets of the vast stores of information such as billing, shipping, and inventory information, to help them make business decisions. While collecting and storing vast amounts of data is one thing, utilizing and deploying that data throughout the organization is another.The technical challenges inherent in integrating disparate data formats, platforms, and applications are significant. However, emerging standards such as the Application Programming Interfaces (API's) that comprise the Java platform, as well as Extendable Markup Language (XML) technologies can facilitate the interchange of data and the development of next generation data warehousing and business intelligence applications. While Java technology has been used extensively for client side access and to presentation layer challenges, it is rapidly emerging as a significant tool for developing scaleable server side programs. The Java2 Platform, Enterprise Edition (J2EE) provides the object, transaction, and security support for building such systems.Metadata IssuesOne of the key issues that business intelligence developers must solve is that of incompatible metadata formats. Metadata can be defined as information about data or simply "data about data." In practice, metadata is what most tools, databases, applications, and other information processes use to define, relate, and manipulate data objects within their own environments. It defines the structure and meaning of data objects managed by an application so that the application knows how to process requests or jobs involving those data objects. Developers can use this schema to create views for users. Also, users can browse the schema to better understand the structure and function of the database tables before launching a query.To address the metadata issue, a group of companies (including Unisys, Oracle, IBM, SAS Institute, Hyperion, Inline Software and Sun) have joined to develop the Java Metadata Interface (JMI) API. The JMI API permits the access and manipulation of metadata in Java with standard metadata services. JMI is based on the Meta Object Facility (MOF) specification from the Object Management Group (OMG). The MOF provides a model and a set of interfaces for the creation, storage, access, and interchange of metadata and metamodels (higher-level abstractions of metadata). Metamodel and metadata interchange is done via XML and uses the XML Metadata Interchange (XMI) specification, also from the OMG. JMI leverages Java technology to create an end-to-end data warehousing and business intelligence solutions framework.Enterprise JavaBeansA key tool provided by J2EE is Enterprise JavaBeans (EJB), an architecture for the development of component-based distributed business applications. Applications written using the EJB architecture are scalable, transactional, secure, and multi-user aware. These applications may be written once and then deployed on any server platform that supports J2EE. The EJB architecture makes it easy for developers to write components, since they do not need to understand or deal with complex, system-level details such as thread management, resource pooling, and transaction and security management. This allows for role-based development where component assemblers, platform providers and application assemblers can focus on their area of responsibility further simplifying application development.EJB's in the Travel IndustryA case study from the travel industry helps to illustrate how such applications could function. A travel company amasses a great deal of information about its operations in various applications distributed throughout multiple departments. Flight, hotel, and automobile reservation information is located in a database being accessed by travel agents worldwide. Another application contains information that must be updated with credit and billing historyfrom a financial services company. Data is periodically extracted from the travel reservation system databases to spreadsheets for use in future sales and marketing analysis.Utilizing J2EE, the company could consolidate application development within an EJB container, which can run on a variety of hardware and software platforms allowing existing databases and applications to coexist with newly developed ones. EJBs can be developed to model various data sets important to the travel reservation business including information about customer, hotel, car rental agency, and other attributes.Data Storage & AccessData stored in existing applications can be accessed with specialized connectors. Integration and interoperability of these data sources is further enabled by the metadata repository that contains metamodels of the data contained in the sources, which then can be accessed and interchanged uniformly via the JMI API. These metamodels capture the essential structure and semantics of business components, allowing them to be accessed and queried via the JMI API or to be interchanged via XML. Through all of these processes, the J2EE infrastructure ensures the security and integrity of the data through transaction management and propagation and the underlying security architecture.To consolidate historical information for analysis of sales and marketing trends, a data warehouse is often the best solution. In this example, data can be extracted from the operational systems with a variety of Extract, Transform and Load tools (ETL). The metamodels allow EJBsdesigned for filtering, transformation, and consolidation of data to operate uniformly on datafrom diverse data sources as the bean is able to query the metamodel to identify and extract the pertinent fields. Queries and reports can be run against the data warehouse that contains information from numerous sources in a consistent, enterprise-wide fashion through the use of the JMI API (Mosher & Oh, 2007).Java in Industrial SettingsMany people know Java only as a tool on the World Wide Web that enables sites to perform some of their fancier functions such as interactivity and animation. However, the actual uses for Java are much more widespread. Since Java is an object-oriented language like C++, the time needed for application development is minimal. Java also encourages good software engineering practices with clear separation of interfaces and implementations as well as easy exception handling.In addition, Java's automatic memory management and lack of pointers remove some leading causes of programming errors. Most importantly, application developers do not need to create different versions of the software for different platforms. The advantages available through Java have even found their way into hardware. The emerging new Java devices are streamlined systems that exploit network servers for much of their processing power, storage, content, and administration.Benefits of JavaThe benefits of Java translate across many industries, and some are specific to the control and automation environment. For example, many plant-floor applications use relatively simple equipment; upgrading to PCs would be expensive and undesirable. Java's ability to run on any platform enables the organization to make use of the existing equipment while enhancing the application.IntegrationWith few exceptions, applications running on the factory floor were never intended to exchange information with systems in the executive office, but managers have recently discovered the need for that type of information. Before Java, that often meant bringing together data from systems written on different platforms in different languages at different times. Integration was usually done on a piecemeal basis, resulting in a system that, once it worked, was unique to the two applications it was tying together. Additional integration required developing a brand new system from scratch, raising the cost of integration.Java makes system integration relatively easy. Foxboro Controls Inc., for example, used Java to make its dynamic-performance-monitor software package Internet-ready. This software provides senior executives with strategic information about a plant's operation. The dynamic performance monitor takes data from instruments throughout the plant and performs variousmathematical and statistical calculations on them, resulting in information (usually financial) that a manager can more readily absorb and use.ScalabilityAnother benefit of Java in the industrial environment is its scalability. In a plant, embedded applications such as automated data collection and machine diagnostics provide critical data regarding production-line readiness or operation efficiency. These data form a critical ingredient for applications that examine the health of a production line or run. Users of these devices can take advantage of the benefits of Java without changing or upgrading hardware. For example, operations and maintenance personnel could carry a handheld, wireless, embedded-Java device anywhere in the plant to monitor production status or problems.Even when internal compatibility is not an issue, companies often face difficulties when suppliers with whom they share information have incompatible systems. This becomes more of a problem as supply-chain management takes on a more critical role which requires manufacturers to interact more with offshore suppliers and clients. The greatest efficiency comes when all systems can communicate with each other and share information seamlessly. Since Java is so ubiquitous, it often solves these problems (Paula, 1997).Dynamic Web Page DevelopmentJava has been used by both large and small organizations for a wide variety of applications beyond consumer oriented websites. Sandia, a multiprogram laboratory of the U.S. Department of Energy's National Nuclear Security Administration, has developed a unique Java application. The lab was tasked with developing an enterprise-wide inventory tracking and equipment maintenance system that provides dynamic Web pages. The developers selected Java Studio Enterprise 7 for the project because of its Application Framework technology and Web Graphical User Interface (GUI) components, which allow the system to be indexed by an expandable catalog. The flexibility, scalability, and portability of Java helped to reduce development timeand costs (Garcia, 2004)IssueJava Security for E-Business ApplicationsTo support the expansion of their computing boundaries, businesses have deployed Web application servers (WAS). A WAS differs from a traditional Web server because it provides a more flexible foundation for dynamic transactions and objects, partly through the exploitation of Java technology. Traditional Web servers remain constrained to servicing standard HTTP requests, returning the contents of static HTML pages and images or the output from executed Common Gateway Interface (CGI ) scripts.An administrator can configure a WAS with policies based on security specifications for Java servlets and manage authentication and authorization with Java Authentication andAuthorization Service (JAAS) modules. An authentication and authorization service can bewritten in Java code or interface to an existing authentication or authorization infrastructure. Fora cryptography-based security infrastructure, the security server may exploit the Java Cryptography Architecture (JCA) and Java Cryptography Extension (JCE). To present the user with a usable interaction with the WAS environment, the Web server can readily employ a formof "single sign-on" to avoid redundant authentication requests. A single sign-on preserves user authentication across multiple HTTP requests so that the user is not prompted many times for authentication data (i.e., user ID and password).Based on the security policies, JAAS can be employed to handle the authentication process with the identity of the Java client. After successful authentication, the WAS securitycollaborator consults with the security server. The WAS environment authentication requirements can be fairly complex. In a given deployment environment, all applications or solutions may not originate from the same vendor. In addition, these applications may be running on different operating systems. Although Java is often the language of choice for portability between platforms, it needs to marry its security features with those of the containing environment.Authentication & AuthorizationAuthentication and authorization are key elements in any secure information handling system. Since the inception of Java technology, much of the authentication and authorization issues have been with respect to downloadable code running in Web browsers. In many ways, this had been the correct set of issues to address, since the client's system needs to be protected from mobile code obtained from arbitrary sites on the Internet. As Java technology moved from a client-centric Web technology to a server-side scripting and integration technology, it required additional authentication and authorization technologies.The kind of proof required for authentication may depend on the security requirements of a particular computing resource or specific enterprise security policies. To provide such flexibility, the JAAS authentication framework is based on the concept of configurable authenticators. This architecture allows system administrators to configure, or plug in, the appropriate authenticatorsto meet the security requirements of the deployed application. The JAAS architecture also allows applications to remain independent from underlying authentication mechanisms. So, as new authenticators become available or as current authentication services are updated, system administrators can easily replace authenticators without having to modify or recompile existing applications.At the end of a successful authentication, a request is associated with a user in the WAS user registry. After a successful authentication, the WAS consults security policies to determine if the user has the required permissions to complete the requested action on the servlet. This policy canbe enforced using the WAS configuration (declarative security) or by the servlet itself (programmatic security), or a combination of both.The WAS environment pulls together many different technologies to service the enterprise. Because of the heterogeneous nature of the client and server entities, Java technology is a good choice for both administrators and developers. However, to service the diverse security needs of these entities and their tasks, many Java security technologies must be used, not only at a primary level between client and server entities, but also at a secondary level, from served objects. By using a synergistic mix of the various Java security technologies, administrators and developers can make not only their Web application servers secure, but their WAS environments secure as well (Koved, 2001).ConclusionOpen standards have driven the e-business revolution. As e-business continues to develop, various computing technologies help to drive its evolution. The Java programming language and platform have emerged as major technologies for performing e-business functions. Java programming standards have enabled portability of applications and the reuse of application components. Java uses many familiar concepts and constructs and allows portability by providing a common interface through an external Java Virtual Machine (JVM). Today, you can find Java technology in networks and devices that range from the Internet and scientific supercomputers to laptops and cell phones, from Wall Street market simulators to home game players and credit cards.Java has found a place on some of the most popular websites in the world. Java applications not only provide unique user interfaces, they also help to power the backend of websites. While Java technology has been used extensively for client side access and in the presentation layer, it is also emerging as a significant tool for developing scaleable server side programs.Since Java is an object-oriented language like C++, the time needed for application development is minimal. Java also encourages good software engineering practices with clear separation of interfaces and implementations as well as easy exception handling. Java's automatic memory management and lack of pointers remove some leading causes of programming errors. The advantages available through Java have also found their way into hardware. The emerging new Java devices are streamlined systems that exploit network servers for much of their processing power, storage, content, and administration.中文翻译:标题:Java的商业应用。

计算机 JSP web 外文翻译 外文文献

计算机 JSP web 外文翻译 外文文献

计算机 JSP web 外文翻译外文文献12.1 nEffective web n design involves separating business objects。

n。

and object XXX。

Although one individual may handle both roles on a small-scale project。

it is XXX.12.2 JSP ArchitectureIn this chapter。

XXX using JavaServer Pages。

servlets。

XXX of different architectures。

each building upon the us one。

The diagram below outlines this process。

and we will explain each component in detail later in this article.Note: XXX.)When Java Server Pages were introduced by Sun。

some people XXX。

While JSP is a key component of the J2EE n and serves as the preferred request handler and response mechanism。

it is XXX.XXX JSP。

the XXX that JSP is built on top of the servlet API and uses servlet XXX interesting ns。

such as whether we should XXX in our Web-enabled systems。

and if there is a way to combine servlets and JSPs。

计算机专业Overview-of-Group-Policy组策略的概述大学毕业论文外文文献翻译及原文

计算机专业Overview-of-Group-Policy组策略的概述大学毕业论文外文文献翻译及原文

毕业设计(论文)外文文献翻译文献、资料中文题目:组策略的概述文献、资料英文题目:Overview of Group Policy 文献、资料来源:文献、资料发表(出版)日期:院(部):专业:计算机班级:姓名:学号:指导教师:翻译日期: 2017.02.14作者:Darren Mar-Elia, Derek Melber, William R. StanekThe出版社:Microsoft Press出版时间:2005-05-25章节:第一张,3至12页组策略的概述在本章,我们将介绍组策略。

你将学到组策略是做什么的,它是怎样被用于域和工作组的设置中,以及实施组策略需要什么基础设施。

如果你要搭建一个活动目录服务的网络环境,你就需要组策略。

就是这么回事。

毫无疑问,没有一点问题。

你面对的真正的问题是给你组织的架构和需求如何最大限度的运用组策略提供的。

为什么?因为组策略意味着你作为管理员的生活变的更容易。

微软定义组策略这个术语是为了描述能够允许你一起设置组策略同时把它们运用到离散集合(不相干记录)的技术。

实际上,组策略是一组为了简化管理共同的、重复的以及独特的任务而又难以手工实施但是可以被自动化执行的策略设置(例如部署新的软件或者强制执行能够安装在电脑上的程序)。

相关信息■关于域名服务器体系结构的信息,参考Microsoft Windows Server 2003 Inside Out(微软服务器2003视窗)的第26章(微软出版,2004)。

■关于活动目录系结构的信息,参考Microsoft Windows Server 2003 Inside Out 的第32章。

■关于组策略实施的信息,参考本书的第四章。

了解组策略组策略提供了一种方便高效的方法来管理计算机和用户设置。

组策略做什么通过组策略,你能用完成(manage)设置一个用户或者一台计算机的方法完成设置成千的用户或者计算机——无需离开你的办公桌(座位)。

【计算机专业文献翻译】21世纪的高级编程语言

【计算机专业文献翻译】21世纪的高级编程语言

外文文献阅读与翻译第1章英文原文Scripting: Higher Level Programming for the 21st Century1 IntroductionFor the last fifteen years a fundamental change has been occurring in the way people write computer programs. The change is a transition from system programming languages such as C or C++ to scripting languages such as Perl or Tcl. Although many people are participating in the change, few people realize that it is occurring and even fewer people know why it is happening. This article is an opinion piece that explains why scripting languages will handle many of the programming tasks of the next century better than system programming languages.Scripting languages are designed for different tasks than system programming languages, and this leads to fundamental differences in the languages. System programming languages were designed for building data structures and algorithms from scratch, starting from the most primitive computer elements such as words of memory. In contrast, scripting languages are designed for gluing: they assume the existence of a set of powerful components and are intended primarily for connecting components together. System programming languages are strongly typed to help manage complexity, while scripting languages are typeless to simplify connections between components and provide rapid application development.Scripting languages and system programming languages are complementary, and most major computing platforms since the 1960's have provided both kinds of languages. The languages are typically used together in component frameworks, where components are created with system programming languagesand glued together with scripting languages. However, several recent trends, such as faster machines, better scripting languages, the increasing importance of graphical user interfaces and component architectures, and the growth of the Internet, have greatly increased the applicability of scripting languages. These trends will continue over the next decade, with more and more new applications written entirely in scripting languages and system programming languages used primarily for creating components.1.1 2 Scripting languagesScripting languages such as Perl[9], Python[4], Rexx[6], Tcl[8], Visual Basic, and the Unix shells represent a very different style of programming than system programming languages. Scripting languages assume that there already exists a collection of useful components written in other languages. Scripting languages aren't intended for writing applications from scratch; they are intended primarily for plugging together components. For example, Tcl and Visual Basic can be used to arrange collections of user interface controls on the screen, and Unix shell scripts are used to assemble filter programs into pipelines. Scripting languages are often used to extend the features of components but they are rarely used for complex algorithms and data structures; features like these are usually provided by the components. Scripting languages are sometimes referred to as glue languages or system integration languages.In order to simplify the task of connecting components, scripting languages tend to be typeless: all things look and behave the same so that they are interchangeable. For example, in Tcl or Visual Basic a variable can hold a string one moment and an integer the next. Code and data are often interchangeable, so that a program can write another program and then execute it on the fly. Scripting languages are often string-oriented, since this provides a uniform representation for many different things.A typeless language makes it much easier to hook together components. There are no a priori restrictions on how things can be used, and all components and values are represented in a uniform fashion. Thus any component or value can be used in any situation; components designed for one purpose can be used for totally different purposes never foreseen by the designer. For example, in the Unix shells, all filter programs read a stream of bytes from an input and write a string of bytes to an output; any two programs can be connected together by attaching the output of one program to the input of the other. The following shell command stacks three filters together to count the number of lines in the selection that contain the word "scripting":select | grep scripting | wcThe select program reads the text that is currently selected on the display and prints it on its output; the grep program reads its input and prints on its output the lines containing "scripting"; the wc program counts the number of lines on its input. Each of these programs can be used in numerous other situations to perform different tasks.The strongly typed nature of system programming languages discourages reuse. Typing encourages programmers to create a variety of incompatible interfaces ("interfaces are good; more interfaces are better"). Each interface requires objects of specific types and the compiler prevents any other types of objects from being used with the interface, even if that would be useful. In order to use a new object with an existing interface, conversion code must be written to translate between the type of the object and the type expected by the interface. This in turn requires recompiling part or all of the application, which isn't possible in the common case where the application is distributed in binary form.To see the advantages of a typeless language, consider the following Tcl command:button .b -text Hello! -font {Times 16} -command {puts hello}This command creates a new button control that displays a text string in a 16-point Times font and prints a short message when the user clicks on the control. It mixes six different types of things in a single statement: a command name (button), a button control (.b), property names (-text, -font, and -command), simple strings (Hello! and hello), a font name (Times 16) that includes a typeface name (Times) and a size in points (16), and a Tcl script (puts hello). Tcl represents all of these things uniformly with strings. In this example the properties may be specified in any order and unspecified properties are given default values; more than 20 properties were left unspecified in the example.The same example requires 7 lines of code in two methods when implemented in Java. With C++ and Microsoft Foundation Classes, it requires about 25 lines of code in three procedures (see [7]for the code for these examples). Just setting the font requires several lines of code in Microsoft Foundation Classes:CFont *fontPtr = new CFont();fontPtr->CreateFont(16, 0, 0,0,700, 0, 0, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE, "Times New Roman");buttonPtr->SetFont(fontPtr);Much of this code is a consequence of the strong typing. In order to set the font of a button, its SetFont method must be invoked, but this method must be passed a pointer to a CFont object. This in turn requires a new object to be declared and initialized. In order to initialize the CFont object its CreateFont method must be invoked, but CreateFont has a rigid interface that requires 14 different arguments to be specified. In Tcl, the essential characteristics of the font (typeface Times, size 16 points) can be used immediately with no declarations or conversions. Furthermore, Tcl allows the behavior for the button to be included directly in the command that creates the button, while C++ and Java require it to be placed in a separately declared method.(In practice, a trivial example like this would probably be handled with a graphical development environment that hides the complexity of the underlying language: the user enters property values in a form and the development environment outputs the code. However, in more complex situations such as conditional assignment of property values or interfaces generated programmatically, the developer must write code in the underlying language.)It might seem that the typeless nature of scripting languages could allow errors to go undetected, but in practice scripting languages are just as safe as system programming languages. For example, an error will occur if the font size specified for the button example above is a non-integer string such as xyz. The difference is that scripting languages do their error checking at the last possible moment, when a value is used. Strong typing allows errors to be detected at compile-time, so the cost of run-time checks is avoided. However, the price to be paid for this efficiency is restrictions on how information can be used: this results in more code and less flexible programs.Another key difference between scripting languages and system programming languages is th at scripting languages are usually interpreted whereas system programming languages are usually compiled. Interpreted languages provide rapid turnaround during development by eliminating compile times. Interpreters also make applications more flexible by allowing users to program the applications at run-time. For example, many synthesis and analysis tools for integrated circuits include a Tcl interpreter; users of the programs write Tcl scripts to specify their designs and control the operation of the tools. Interpreters also allow powerful effects to be achieved by generating code on the fly. For example, a Tcl-based Web browser can parse a Web page by translating the HTML for the page into a Tcl script using a few regular expression substitutions. It then executes the Tcl script to render the page on the screen.Scripting languages are less efficient than system programming languages, in part because they use interpreters instead of compilers but also because their basic components are chosen for power and ease of use rather than an efficient mapping onto the underlying hardware. For example, scripting languages often use variable-length strings in situations where a system programming language would use a binary value that fits in a single machine word, and scripting languages often use hash tables where system programming languages use indexed arrays.Fortunately, the performance of a scripting language isn't usually a major issue. Applications for scripting languages are generally smaller than applications for system programming languages, and the performance of a scripting application tends to be dominated by the performance of thecomponents, which are typically implemented in a system programming language.Scripting languages are higher level than system programming languages, in the sense that a single statement does more work on average. A typical statement in a scripting language executes hundreds or thousands of machine instructions, whereas a typical statement in a system programming language executes about five machine instructions (see Figure 1). Part of this difference is because scripting languages use interpreters, which are less efficient than the compiled code for system programming languages. But much of the difference is because the primitive operations in scripting languages have greater functionality. For example, in Perl it is about as easy to invoke a regular expression substitution as it is to invoke an integer addition. In Tcl, a variable can have traces associated with it so that setting the variable causes side effects; for example, a trace might be used to keep the variable's value updated continuously on the screen. Because of the features described above, scripting languages allow very rapid development for applications that are gluing-oriented.To summarize, scripting languages are designed for gluing applications. They provide a higher level of programming than assembly or system programming languages, much weaker typing than system programming languages, and an interpreted development environment. Scripting languages sacrifice execution speed to improve development speed.中文翻译脚本语言:21世纪的高级编程语言1.简介在过去的十五年里,人们编写计算机程序的方法发生了根本的转变。

毕业设计论文 外文文献翻译

毕业设计论文 外文文献翻译

毕业设计(论文)外文参考文献翻译计算机科学与信息工程系系(院)2008 届题目企业即时通Instant Messaging for Enterprises课题类型技术开发课题来源自选学生姓名许帅专业班级 04计算机科学与技术指导老师王占中职称工程师完成日期:2008年4 月 6 日目录I NSTANT M ESSAGING FOR E NTERPRISE (1)1. Tips (1)2. Introduction (1)3. First things first (2)4.The While-Accept loop (4)5. Per-Thread class (6)6. The Client class (7)企业即时通 (9)1.提示 (9)2.简介 (9)3.首先第一件事 (10)4.监听循环 (11)5.单线程类 (13)6.用户端类 (14)Instant Messaging for Enterprise1. TipsIf Java is, in fact, yet another computer programming language, you may question why it is so important and why it is being promoted as a revolutionary step in computer programming. The answer isn’t immediately obvious if you’re coming from a tr aditional programming perspective. Although Java is very useful for solving traditional standalone programming problems, it is also important because it will solve programming problems on the World Wide Web. What is the Web?The Web can seem a bit of a mys tery at first, with all this talk of “surfing,”“presence,” and “home pages.” It’s helpful to step back and see what it really is, but to do this you must understand client/server systems, another aspect of computing that is full of confusing issues. The primary idea of a client/server system is that you have a central repository of information,some kind of data, often in a database。

计算机科学与技术 外文翻译 英文文献 中英对照

附件1:外文资料翻译译文大容量存储器由于计算机主存储器的易失性和容量的限制, 大多数的计算机都有附加的称为大容量存储系统的存储设备, 包括有磁盘、CD 和磁带。

相对于主存储器,大的容量储存系统的优点是易失性小,容量大,低成本, 并且在许多情况下, 为了归档的需要可以把储存介质从计算机上移开。

术语联机和脱机通常分别用于描述连接于和没有连接于计算机的设备。

联机意味着,设备或信息已经与计算机连接,计算机不需要人的干预,脱机意味着设备或信息与机器相连前需要人的干预,或许需要将这个设备接通电源,或许包含有该信息的介质需要插到某机械装置里。

大量储存器系统的主要缺点是他们典型地需要机械的运动因此需要较多的时间,因为主存储器的所有工作都由电子器件实现。

1. 磁盘今天,我们使用得最多的一种大量存储器是磁盘,在那里有薄的可以旋转的盘片,盘片上有磁介质以储存数据。

盘片的上面和(或)下面安装有读/写磁头,当盘片旋转时,每个磁头都遍历一圈,它被叫作磁道,围绕着磁盘的上下两个表面。

通过重新定位的读/写磁头,不同的同心圆磁道可以被访问。

通常,一个磁盘存储系统由若干个安装在同一根轴上的盘片组成,盘片之间有足够的距离,使得磁头可以在盘片之间滑动。

在一个磁盘中,所有的磁头是一起移动的。

因此,当磁头移动到新的位置时,新的一组磁道可以存取了。

每一组磁道称为一个柱面。

因为一个磁道能包含的信息可能比我们一次操作所需要得多,所以每个磁道划分成若干个弧区,称为扇区,记录在每个扇区上的信息是连续的二进制位串。

传统的磁盘上每个磁道分为同样数目的扇区,而每个扇区也包含同样数目的二进制位。

(所以,盘片中心的储存的二进制位的密度要比靠近盘片边缘的大)。

因此,一个磁盘存储器系统有许多个别的磁区, 每个扇区都可以作为独立的二进制位串存取,盘片表面上的磁道数目和每个磁道上的扇区数目对于不同的磁盘系统可能都不相同。

磁区大小一般是不超过几个KB; 512 个字节或1024 个字节。

计算机外文翻译

毕业设计(论文)外文译文院(系):机电工程学院专业:机械设计制造及其自动化姓名:学号:外语文献翻译原文:3.4.1CAD HARDWAREComputersThere are two major types of hardware used in a CAD system. Computer and input/output (I/O) devices. In the early days of CAD. Some commercial CAD systems used proprietary computers. Today, nearly all CAD software runs on a general-purpose computer.Depending on the complexity of the CAD package, it may require a mainframe computer, a minicomputer, or simply a microcomputer. In general, the more functionalities a CAD system provides, the more powerful the computer needed. Three dimensional solid modelers require much more computing than do two-dimensional drafting systems; thus, they need more powerful computers. Systems that integrate engineering analysis or simulation packages generally are more computation-intensive. A powerful computer not only speeds up the response of a CAD system, but also can support multiple users without significant performance degradation.Several other parameters and components concerning the computer also have to be considered.CAD HARDWARErandom-access memory (RAM)capacitypermanent disk-storage capacityspecial graphics acceleratortape backupsRAM is the actual physical memory (vs. virtual memory)of a computer. A small memory capacity means slow processing due to frequent swapping between the physical memory and the virtual memory on disk. Because CAD is extremely storage demanding, disk capacity is important. Small disk capacity limits the system to the storage of only a few drawings. CAD is graphics-based and requires tremendous data processing. A graphics accelerator can drastically increase the performance of the system. Another component, the hard disk, is typically the major cost of a computer system. Therefore, it is not cost-justifiable to store all drawings on line on disk. Magnetic tape is still the most economical medium to use for off-line data storage. It is necessary for a CAD system to have a tape backup subsystem.Currently, all levels of computers are used in CAD systems. Personal computers are used in low-cost,2-D drafting applications, and with the new power of these computers, hey are also being used for some 3-D solid modeling applications. Engineering workstations have been the mainstay in CAD, and are usually a single-user CAD workstation in a network. Minicomputers are used in multiuser CAD systems. Mainframes are used for large multiuser CAD systems to support real time simulation and engineering analysis. Sometimes, in a large corporation, all levelsof CAD systems are implemented. All these systems are linked together through a hierarchical computer network.3.4.2 Input. Output (I/O)DevicesFigure 3.7 shows the typical I/O devices used in a CAD system. Input devices are generally used to transfer information from a human or storage medium to a computer where ”CAD functions” are carried out. A keyboard is the standard input device used to transmit alphanumeric data to the system. Function keypads are also used to make input easier. Joysticks, track balls, and mousse are also used to manipulate a cursor. They can be used to position the graphic cursor(e.g. cross hair)on a monitor and feed back the location of an object on the monitor to the computer. Using these devices allows an operator to address terminal locations to interactively in reaching an accurate position. Mouses have been used extensively with windows and pull-down menus. They are easy to use for pointing; However, using a mouse to trace a curve is not an easy task.There are three basic approaches to input an existing drawing;(1)model the object on a drawing,(2)digitize the drawing, or (3)scan the object. Digitizing is usually much easier than modeling. A digitizer is a device that translates the X-Y locations on a drawing than modeling. A digitizer is a device that translates the X-Y locations on a drawing into a digital and feeds that signal to a computer. Graphics scanners scan a drawing and convert it to a CAD-system-readable format. Some scanners have built-in character-recognition software that can convert characters on paper into ASCII codes. Another input device is a sketch pad called a graphics tablet. A graphics tablet is a special flat surface on which a user draws with a stylus. The location of the stylus is sent to the computer. The tablet is an absolute coordinate device. It is easy to implement overlay menus on the tablet and pull down menus on the screen to improve the operation. Currently. the tablet is the most popular input device used in CAD other than the keyboard.The standard output device for CAD is a monitor display. Modern monitor displays are raster-scan display monitors. Similar to a TV monitor, an electron gun(Sony Trinitron uses three guns for three basic colors)sends an electronic beam to the front of the monitor. Easy display dot is called a pixel(picture element).For color displays, each pixel is represented by three closely located dots with red, green , and blue colors. The electronic beam selects the color elements and the intensity of each color element. The resolution of the monitor is determined by the number of different colors or gray scales displayable at each pixel, usually measured in bits, A 1-bit display can turn each pixel either ON or OFF.A gray scale has at least v2 bits. A 1-bit display can turn each pixel either ON or OFF.A gray scale has at least 2 bits which allow three light intensities plus an OFF (2*2).Usually, displays are 4 bits(16 colors),8 bits(256 colors),16 bits(thousands of colors),and 24bits (millions of colors).The electronic beam sweeps the screen from the top to the bottom line by line. Because the dot is lit for only a very short period of time, the sweep must be done very quickly in order not to have a flickering image. The refresh rate is a measure of how many times the monitor is redrawn in one second.The computer does not draw directly on the monitor. Connecting the computer to the monitor is u-sually a RGB(red, green, blue)cable. Three separate signal lines are connected. On the graphics board in the computer are circuits to generate the analog signals required to drive the monitor. There is also a frame buffer that serves as memory to store the image. Each pixel on the screen has a corresponding address in the frame buffer. The data in the frame buffer are converted into the appropriate analog signal and sent to the monitor at the refresh rate. Separately, the computer writes directly to the frame buffer the image it intends to draw. The greater the display size and number of colors, the more frame buffer is needed. The frame buffer on the graphics board is made of random-access memory(RAM).The calculator lend support toes to paint the software AutoCAD to make us can be with the sketch that the astonishing speed draw the engineering sketch or machine sketch and other with accuracy to sophisticate. The calculator paints to paint the different place, one of them with handicraft the paintings with out the diagram divide a step proceed of, because of but would sometimes appear the traditional handicraft the painting hour the problem of the impossible emergence. General circumstance bottom, usage the AutoCAD proceeds painting, control the precision painting and not that difficult, but want accurate then need the certain technique out the diagram. Us- ually paint or outsing diagram to have no to need to change to measure to AutoCAD system worth make the modification with establish, take its the province worth can normal work, but have the special request, must modify the related system to change measure; Too sometimes the request of the diagram paper with make the diagram's way of doing the antinomy, and be to adopt the to make the diagram method to can't attain the request of the diagram paper, will adopt some techniqueiques to modify the related system to change to measure, and can make the calculator draw to attain the request of the diagram paper with output's sketch.AutoCAD line type establishing of comparison At teaching of process inside would usually run into what this kind of circumstance, while establishing diagram layer, clearly established the point lin eationed, and consequently output to however investigate its reason for the solid lined, and is usually because of the line typed the establishing of comparison is not appropriate and cau-sable. Should you so establish the comparison of what kind of line type? How to use the line type the comparison in the painting?Usage AutoCAD painting, besides continuous line type( Continuous), the other line type is all from the solid line segment, blank segment, point series for or text this constituting. On-line type definition document the inside have already defined these line types the segment's standard length, and show on held the act or at print the machine\ painting output, each length and ex-portation comparison with line type comparison direct proportion. When show or print, the painting boundary that customer that request, this hour establish is out of accordance with the painting boundary of the province difference big, on held the act show or paint output's line type would match the engineering graphics to will pass the changes line type comparison the system the method that change the deal, enlarge orcontract all line types each a small segment of length, make the sketch made meet the request. In the Auto CAD, imply the adjustment line type the comparison's order: Overall situation line type comparison factor tie department exportation ratio for line type ratio factor, used foring the control not continuous line type. The Ltscale is right to have the object validity, Celtscale the province for to new object validating, twoly changing the deal w-orth all for 1.For use the line type that Auto CAD2002 painting, big part contain three kinds of forms,( such as: Comparison that Center, Center2, Center*2, Dashed, Dashed2, Dashed*2) the first is a half, the third line type for the standard form, the second line type that comparison that the first line type is the first line type of two times, if line type the comparison establish to is not suitable for, and would then make some exportation diagrams the line( such as the point lineation, dotted line...etc.) change into a solid line.Two, line breadth the count of establishPass by what handicraft painting, its painting with outs the diagram is a synchronous proceeding of, now calculator painting, its painting with outs the diagram divide a step proceeds. Wether draw the construction engineering diagram or machine spare parts diagram, at print control that a work that exportation engineering drawing, the most is a line to print the drawing the breadth, line the type, color, seal a line breadth for, and eachly growing to line type all contain its cowgirl, in the AutoCAD painting process of the old edition, even defined the line type the width, its at see the diagram area can't also display the line type the width's differentiation.( not contain many righteousness lines the Pline)Width for color for can passing the diagram layer or set upping the line coming distinguish analysing the line.What research of current painting tries a, adopt of is this kind of method.But in the AutoCAD2002, add entity that" Lweight"( line type the width establish) order, provided the new function for customer, then make use of the entity characteristic to proceed the control, and establish the line breadth for the sketch, and make use of it can at hold the act to up show with print to output, control the entity's line breadth.2002 versions inside print to establish and can is divided into three part, and for printing machine belong to the sex to establish, print the style to establish respectively and the page establish.Because of the model of breadth line the space is different from diagram manifestation of space paper result, in the model space therefore the elephant vegetable show, but in the diagram paper the space is then then to print the width to proceed to show, because of but we while drawing ske tch should know at the diagram line that true width established by line breadth of model space, and is not equal with object. When the line breadth is worth to establish to"0", it show with the minimum width( plain breadth of an elephant) on held the act, and the line breadth settle to other worth, then come showing with the worth specific value of plain width and true unit of elephant.Three, the sketch output the establishing of comparison When we draw sketch that comparison that comparison output the sketch with us hour use different, canmake originally text in the sketch that draw word exportation comparison for marking noting waiting in the output's sketch take placing changing, therefore at drawing the sketch before returning the beard make suring the sketch.For guaranteeing the sketch to output our want the literalness size, should when the text word establish usage following formula: The text word draws the high degree the = the text word output high degree* the sketch to output the comparison; The sketch outputs the comparison= output the diagram the length for of length( width)/ diagram.( width) draw the width of the diagram line to also should consider this point, its to settle the width same as output the width to multiply by with its comparison worth.From above practice with analyze to can see out, calculator painting and incompletelyresemble handicraft painting so synchronously paint with out diagram, therefore sometimes make with the diagram method can't attain the request of the diagram paper. Some in common use system that this demand we are deep into control the calculator to paint the theories, and can expertly control the operation method to change the deal with establish the technique, and can make the work of our painting more convenient, smooth, consumedly increase to paint the level with paint the efficiency.译文:3.4.1CAD硬件计算机两大主要类型的硬件使用于CAD系统,计算机和输入/输出设备。

计算机 自动化 外文翻译 外文文献 英文文献 原文

The Application of Visualization Technology in ElectricPower Automation SystemWang Chuanqi, Zou QuanxiElectric Power Automation System Department of Yantai Dongfang Electronics Information IndustryCo., Ltd.Abstract: Isoline chart is widely used chart. The authors have improved the existing isoline formation method, proposed a simple and practical isoline formation method, studied how to fill the isoline chart, brought about a feasible method of filling the isoline chart and discussed the application of isoline chart in electric power automation system.Key words: Visualization; Isoline; Electric power automation systemIn the electric power system industry, the dispatching of electric network becomes increasingly important along with the expansion of electric power system and the increasing demands of people towards electric power. At present, electric network dispatching automation system is relatively advanced and relieves the boring and heavy work for operation staff. However, there is a large amount or even oceans of information. Especially when there is any fault, a large amount of alarm information and fault information will flood in the dispatching center. Faced with massive data, operation staff shall rely on some simple and effective tool to quickly locate the interested part in order to grasp the operation state of the system as soon as possible and to predict, identify and remove fault.Meanwhile, the operation of electric power system needs engineers and analysts in the system to analyze a lot of data. The main challenge that a system with thousands of buses poses for electric power automation system is that it needs to supply a lot of data to users in a proper way and make users master and estimate the state of the system instinctively and quickly. This is the case especially in electric network analyzing software. For example, the displaying way of data is more important in analyzing the relations between the actual trend, planned trend of electric network and the transmission capacity of the system. The application of new computer technology and visualization technology in the electric power automation system can greatly satisfy new development and new demands of electric power automation system.The word “Visualization” originates from English “Visual” and itsoriginal meaning is visual and vivid. In fact, the transformation of any abstract things and processes into graphs and images can be regarded as visualization. But as a subject term, the word “Visualization” officially appeared in a seminar held by National Science Foundation (shortened as NSF) of the USA in February 1987. The official report published after the seminar defined visualization, its covered fields and its recent and long-term research direction, which symbolized that “Visualization” became mature as a subject at the international level.The basic implication of visualization is to apply the principles and methods of computer graphics and general graphics to transforming large amounts of data produced by scientific and engineering computation into graphs and images and displaying them in a visual way. It refers to multi research fields such as computer graphics, image processing, computer vision, computer-aided design (CAD) and graphical user interface (GUI), etc. and has become an important direction for the current research of computer graphics.There are a lot of methods to realize visualization and each method has its unique features and applies to different occasions. Isoline and isosurface is an important method in visualization and can be applied to many occasions. The realization of isoline (isosurface) and its application in the electric power automation system will be explained below in detail.1、 Isoline (Isosurface)Isoline is defined with all such points (x i, y i), in which F(x i, y i)=F i (F i is a set value), and these points connected in certain order form the isoline of F(x,y) whose value is F i…Common isolines such as contour line and isotherm, etc.are based on the measurement of certain height and temperature.Regular isoline drawing usually adopts grid method and the steps are as follows:gridingdiscrete data;converting grid points into numerical value;calculating isoline points; tracing isoline; smoothing and marking isoline; displaying isoline or filling the isoline chart. Recently, some people have brought about the method of introducing triangle grid to solve the problems of quadrilateral grid. What the two methods have in common is to use grid and isoline points on the grid for traveling tracing, which results in the following defects in the drawing process:(1) The two methods use the grid structure, first find out isoline pointson each side of certain quadrilateral grid or triangle grid, and then continue to find out isoline points from all the grids, during which a lot of judgment are involved, increasing the difficulty of program realization. When grid nodes become isoline points, they shall be treated as singular nodes, which not only reduces the graph accuracy but also increases the complexity of drawing.(2) The two methods produce drawn graphs with inadequate accuracy and intersection may appear during traveling tracing. The above methods deal with off-grid points using certain curve-fitting method. That is, the methods make two approximations and produce larger tolerance.(3) The methods are not universal and they can only deal with data of grid structure. If certain data is transformed into the grid structure, interpolation is needed in the process, which will definitely reduce the accuracy of graphs.To solve the problems, we adopt the method of raster graph in drawing isoline when realizing the system function, and it is referred to as non-grid method here. This method needs no grid structures and has the following advantages compared to regular methods:(1) Simple programming and easily realized, with no singular nodes involved and no traveling tracing of isoline. All these advantages greatly reduce the complexity of program design.(2)Higher accuracy. It needs one approximation while regular methods need two or more.(3) More universal and with no limits of grid1.1 Isoline Formation Method of Raster GraphThe drawing of raster graph has the following features: the area of drawing isoline is limited and is composed of non-continuous points. In fact, raster graph is limited by computer screen and what people can see is just a chart formed by thousands of or over ten thousand discrete picture elements. For example, a straight line has limited length on computers and is displayed with lots of discrete points. Due to the limitations of human eyes, it seemscontinuous. Based on the above features, this paper proposes isoline formation method of raster graph. The basic idea of this method is: as computer graphs are composed of discrete points, one just needs to find out all the picture element points on the same isoline, which will definitely form thisisoline.Take the isoline of rectangular mountain area for example to discuss detailed calculation method. Data required in calculation is the coordinates and altitude of each measuring point, i.e., (x i ,y i ,z i ), among which z i represents the altitude of No.i measuring point and there are M measuring points in total. Meanwhile, the height of isoline which is to be drawn is provided. For example, starting from h 0 , an isoline is drawn with every height difference of ∆h0 and total m isolines are drawn. Besides, the size of the screen area to be displayed is known and here (StartX,StartY) represents the top left corner of this area while (EndX ,EndY)represents the low right corner of this area. The calculation method for drawing its isoline is as follows:(1) Find out the value of x i and y i of the top left corner and low right corner points in the drawing area, which are represented by X max ,X min ,Y max ,Y min ;(2)Transform the coordinate (x i ,y i ) into screen coordinate (SX i ,SY i ) and the required transformation formula is as follows:sx i =x i -X min /X max -X min (EndX-StartX)sy i =y i -Y min /Y max -Y min (EndY-StartY)Fig. 1 Height computation sketch(3) i =startX,j=StartY; Suppose i =startX,j=StartY;(4) Use the method of calculating height (such as distance weighting method and least square method, etc.) to calculate out the height h 1, h 2, h 3 of points (i,j), (i+1,j) and (i,j+1), i.e., the height of the three points P 1, P 2 and P 3 in Fig. 1;(5) Check the value of h 1, h 2, h 3 and determine whether there is any isoline crossing according to the following methods:①k=1,h=h 0;①k=1,h=h 0;②Judge whether (P 1-h)*(P 2-h)≤0 is justified. If justified, continue the next step; otherwise, perform ⑤;③Judge whether |P1-h|=|P2-h| is justified. If justified, it indicates that there is an isoline crossing P1, P2, dot the two points and jumpto (6); otherwise, continue next step;④Judge whether |P1-h|<|P2-h|is justified. If justified, it indicates that there is an isoline crossing P1, dot this point; otherwise, dot P2;⑤Judge whether (P1-h)*(P3-h)≤0 is justified. If justified, continue next step; otherwise, perform ⑧.⑥Judge whether|P1-h|=|P3-h|is justified. If justified, dot the twopoints P1\,P3 and jump to (6);otherwise, jump to ⑤;⑦Judge whether|P1-h|<|P3-h|is justified. If justified, dot P1; otherwise, dot P3;⑧Suppose k:=k+1 and judge whether k<m+1 I is justified. If unjustified, continue next step; otherwise, suppose h:=h+∆h0 and return to ②.(6) Suppose j:j+1 and judge whether j<EndY is justified. If unjustified,continue next step; otherwise, return to (4);(7) Suppose i:=i+1 and judge whether i<EndX is justified. If unjustified,continue next step; otherwise, return to (4);(8) The end.In specific program design, in order to avoid repeated calculation, an array can be used to keep all the value of P2 in Column i+1 and another variable is used to keep the value of P3.From the above calculation method, it can be seen th at this method doesn’tinvolve the traveling of isoline, the judgment of grid singular nodes and theconnection of isoline, etc., which greatly simplifies the programming and iseasily realized, producing no intersection lines in the drawn chart.1.2 Griding and Determining NodesTime consumption of a calculation method is of great concern. Whencalculating the height of (i,j), all the contributing points to the height ofthis point need to be found out. If one searches through the whole array, it is very time consuming. Therefore, the following regularized grid method is introduced to accelerate the speed.First, two concepts, i.e., influence domain and influence point set, are provided and defined as follows: Definition 1: influence domain O(P) of node P refers to the largest area in which this nodes has some influence on other nodes. In this paper, it can refer to the closed disc with radius as r (predetermined) or the square with side length as a (predetermined).Definition 2: influence point set S(P)of node P refers to the collection of all the nodes which can influence node P. In this paper, it refers to the point set with the number of elements as n (predetermined), i.e., the number of all the known contributing nodes to the height of node (i,j) can only be n and these nodes are generally n nodes closet to node P.According to the above definition, in order to calculate out the height of any node (i,j), one just needs to find out all the nodes influencing the height of this node and then uses the interpolation method according totwo-dimensional surface fitting. Here, we will explain in detail how to calculate out the height of node (i,j) with Definition 1, i.e., the method of influence domain, and make similar calculation with Definition 2.Grid structure is used to determine other nodes in the influence domainof node (i,j). Irregular area is covered with regular grid, in which the grids have the same size and the side of grid is parallel with X axis and Y axis. The grid is described as follows:(x min,x max,NCX)(y min,y max,NCY)In the formula, x min, y max and x max, y max are respectively the minimum and maximum coordinates of x, y direction of the area; NCX is the number of grids in X direction; NCY is the number of grids in Y direction.Determining which grid a node belongs to is performed in the following two steps. Suppose the coordinate of this node is (x,y). First, respectively calculate its grid No. in x direction and y direction, and the formula is as follows:IX=NCX*(x-x min)/(xmax-x min)+1;IY=NCY(y-y min)/(y max-y min)+1。

计算机专业毕业设计论文外文文献中英文翻译——java对象

1 . Introduction To Objects1.1The progress of abstractionAll programming languages provide abstractions. It can be argued that the complexity of the problems you’re able to solve is directly related to the kind and quality of abstraction。

By “kind” I mean,“What is it that you are abstracting?” Assembly language is a small abstraction of the underlying machine. Many so—called “imperative” languages that followed (such as FORTRAN,BASIC, and C) were abstractions of assembly language。

These languages are big improvements over assembly language,but their primary abstraction still requires you to think in terms of the structure of the computer rather than the structure of the problem you are trying to solve。

The programmer must establish the association between the machine model (in the “solution space,” which is the place where you’re modeling that problem, such as a computer) and the model of the problem that is actually being solved (in the “problem space,” which is the place where the problem exists). The effort required to perform this mapping, and the fact that it is extrinsic to the programming language,produces programs that are difficult to write and expensive to maintain,and as a side effect created the entire “programming methods” industry.The alter native to modeling the machine is to model the problem you’re trying to solve。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档