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

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

本科毕业设计

外文文献及译文

文献、资料题目:Evolving Java Without Changing

the Language

文献、资料来源:https://www.360docs.net/doc/6717986741.html,/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 sens e 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; and

whether 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 DSLs

The 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 both

Lisp 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 Processor

Whilst 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 an

example. 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 Abstract Method using the @As.Additional annotation. These parameters can have values bound 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 fields

Other 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 IDE

Bruce 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 switch

views 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.

Conclusion

In 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是一种蓝领语言,它并不是博士的论文材料而是可以完成工作上的语言。很多不同的程序员都非常熟悉Java,因为我有一种趋势去选择普及的东西,这是一个不错的选择。

Java的这种成功证明了它的这种方法是正确的,如果Java今天仍然以这个为目标,那么它的语言演进将变得很缓慢。Java作为一个成熟,使用广泛的语言也将导致其演进过程充满了困难。一方面,每个特性添加到语言中都有可能造成不可预知到后果,这么做会疏远那些熟悉Java的人,另一方面,本身很完美的特性可能在与其他特性进行交互时产生未知的影响。更糟的是,一旦增加了某个语言特性,几乎就不可能再将它移除,即使这个特性会对整个语言产生危害也没办法。语言设计者为了证明某个特性是正确的,应该从长远的角度来考虑,不应该在短期内解决这个问题,而之后就变成了多余的。为了降低风险,语言设计者一般会创建单独的一种语言或者分支来进行试验,比如Pizza语言就是在完成前用来测试Java泛型的。这种方式的问题在于试验的参与者是比较少的人群,并且是自愿的。他们对语言特性很感兴趣,很多人是学者或者研究员。但是,在普通的程序员使用这些特性时,那些学者或是研究员认为很好的特性可能变得很糟。

为了感受一下这种情况,请考虑Java7闭包特性的激烈争论。很长时间以来有人在提案中给出了闭包的实现,但最终却还是没有达成共识。然后,Sun公司不在JDK7中添加完整的闭包支持。争论的焦点转向为添加泛型会不会导致Java变得越来越复杂,在Java中已经通过匿名内部类部分实现该功能的情况下,完整闭包还是正确的吗。需要完整闭包支持的是简化fork/join API(添加到了JDK7中以改进多核编程)的使用以及清理资源。Josh Bloch的ARM block提案对第二个问题给出了另一种解决方案。Cliff Click博士在面向Java的可扩展,非阻塞变成风格的研究中给出了关于fork/join的另一种方案,这种方案随着核心处理器的不断增加看起来也很合理,如果这种成为可能的话,那么Java中使用闭包的地方将会很少了,语言就不需要提供这个特性了。

虽然这样,但是对编程语言来说。不断的平稳发展还是非常重要的。因此下面讲了3种技术,向Java中增加新的语言特性而又不改变语言本身,他们是客户化领域特定语言(DSL)、Java6的注解处理器(用库来添加可选择的语言特性)以及将语法糖从语言般向IDE。每个技术都能让主流开发者用非侵入方式体验这些新特性,好的想法可以融合到语言

核心当中。

客户化DSL

在这3个技术中,讨论最多的还是特定领域语言或者说是DSL。关于DSL的定义有很多争议,但是为了方便我们讨论,我们把它当作一个简单的语言而不是一个解决计算机问题的语言。那样DSL就不是图灵完备的了。当然也有边缘情况,例如,Postscript是图灵完备的语言但是也可以作为DSL来定义。

正如上面的例子,一个DSL也不是新的想法。其他熟悉的DSL包括正则表达式,XSLT,Ant和JSP,所有这样都需要一个定制的分析器排序,来处理他们。Martin Fowler也指出interfaces/API可以被认为是一个第二种类型的内部DSL。他认为一个内部DSL应该被开发语言直接开发,这是Lisp和Smalltalk程序员普遍的做法,以及最近Ruby社区也一直致力推广这一技术。

虽然很多知名的DSL是为了商业上的开发和维护,但是一些企业已经使用这项技术来创造一种语言,但还是小部分人,可能是DSL门槛较高吧。这个小组必须设计语言,建立解析器和其他可能的工具来支持这个程序,以及培养一个新加入者如何用DSL。这是出现来可以支持DSL开发的工具,这大大的改变了局面。Intentional Software所开发的Intentional Domain Workbench比Java还要久,它首先实现了该工具的功能。该项目开始于微软研究院,Charles Simonyi博士在1995年所发表的论文“The Death of Computer Languages,the Birth of Intentional Programming”中描绘了其愿景。2002年,Simonyi 创建了Intentional Software以继续实现他的想法,一个巨大的系统中获得的令人印象深刻的视频。该产品现在是1.0版本,但访问权仅限于有限合伙人。

其他的一些公司也开始研究这项技术,其中包括一IntrelliJ IEDA Java IDE而出名的JetBrains,它最近发布了Meta Programming System(MPS)1.0版。MPS并没有使用分析器,而是直接使用Abstact Syntax Tree(AST)。他提供了一个可以允许程序员来操作的AST以及可以编写语言和程序的文本编辑器。当程序员使用投影时就会为树上的每个借点创建一个文本,这样变化就会反映到节点当中。开发者能通过这样的方法开任意组合。JetBrains正在内部使用这个产品,最近发布了bug追踪产品YouTrack就是使用该系统开发的。

Java6注解处理器

在很多主流语言像Java中,DSL远不如Ruby Smalltalk 和Lisp普遍,最近在Java 语言中出现的变化特别是Java 6中新增的注解处理器为开发者提供了新的机遇去使用

Java。Java EE 6中的JPA 2.0,某些API本身就是 DSL,这就是一个例子。这种处理器会在应用中建立一个持久的元模型。虽然开发者可以很好的用手工去处理Java元模型,但是它会很枯燥无味而且容易出现错误。注解处理器的使用解决了这种痛苦,因为这种处理器是建立在Java内部,而且不需要特殊的IDE支持--IDE会代理处理器自己建立元模型。

使用这种注解处理器也可以为程序库增加新的语言特性。举个例子来说,Bruce Chapman 的原型“no closures”提案就是凭借这种技术将方法转换为 Single Abstract Method(SAM)类型,然后在Java 6上编译。在我们的会话中Chapman指出SAM类型还支持自由变量,这是一个封闭的关键方面:这种方法本身除了Single Abstract Method所需的参数外还可以使用@As.Additional注解声明额外的参数。在获得SAM类型的实例时,这些参数可以带有绑定值,然后在每次调用时传递给方法。

Chapman还建立了Rapt工程来探索这种技术的其他用途,为两种语言的变化提供应用--Multiline Strings和XML--它们是为JDK7使用的但却不会把它放在最终的发布中。Java 也可以通过这种方法来实现自我封闭。当问及这个时Chapman说:我们刚刚使用这个完成了一个Swing项目。我们发现了一种小型的bug,最近其中一种还没有修复,但是其他都还好,没有人想去使用内部等级的。

Lombok项目是注解处理器的另一个项目,它将技术又向前推进了。Lombok将注解作为回调以运行Java agent,后者会根据注解重写各种javac内核。由于它是内部操作,所以它不适合产品使用(JVM各个小版本中的内部类也可能不一样),但是这个项目究竟能做什么还是很有启迪作用的,包括:

?通过@Getter和@Setter注解定义各种访问级别的属性,如@Setter(AccessLevel.PROTECTED) private String name;

?@EqualsAndHashCode注解会根据对象中的属性实现hashCode()和 equals()方法?@ToString注解会实现toString()方法

?@data方法相当于 @ToString、@EqualsAndHashCode、所有属性的@Getter以及所有非final属性的@Setter的集合,可以使用 @data方法和构造方法初始化final属性还可以通过这种方法进行其他的语言试验,比如移除Java中的异常。

虽然注解处理器为语言实验开发了一条新路线,但仍要注意新代码可以被探索者很容易的理解,而不是被机器。在我们的会话中,Chapman给出了很多建议:要生成源代码而不是字节码,注意生成代码的格式(尤其是缩进)。编译器不在乎代码是不是在同一行,但使用者在乎,我甚至还在使用注解处理器在适当的地方加入一些注释。

如果这个技术普遍流行起来,通过IDE可以更容易的查看编译代码。

IDE中的语法糖

Bruce Chapman还提到了第三项技术——将语法糖从语言迁移到IDE中——他在博客中说过这个问题。对于Java IDE来说。生成部分代码已经是不可缺少的了,不如说getter 和setter方法,但是IDE开发者刚刚开始挖掘这个概念。JetBrains的IntelliJ9提供了一个内部类相似,其中开发人员可以输入简短的代码块,如代码折叠代理,这些可以被扩展到完整的匿名内部类——这样坚持使用标准的匿名内部类的开发者就很容易适应了。Eclipse也有一个类似的插件。关键的是这种语法仅仅是代码的另外一种形式罢了,编辑器和任何源代码管理工具都能够像以前那样处理他们。开发者可以在两个方式之间来切换,没有权限访问该语法糖衣的人依然只能看到正常的Java代码。Champman说过:要想实现使用起来好用的目标还有很多工作要做,但是从长远来看,我发现开发者很容易实现加糖/脱糖的转换,不断尝试,不断与同事和社区分享好的点子,这么做的好处与语言的演进没有区别。最好的东西会流行起来并形成实际语言演进的基础,如果必要的话还可以随时去除这种方法无法实现的“噪音”。

由于语法糖衣已经映射到另一个(更详细)的语言功能,不能提供完整的闭包支持。比如说BGGA闭包就有一些特性无法匹配匿名内部类,因此不能通过这种方式实现。话虽如此,这种想法却展示了通过各种新语法来表示匿名内部类的可行性,类似于BGGA语法或是FCM语法,开发者也可以选择自己喜欢的语法。其他的语言特性(如null-safe Elvis operator)可以通过这种方式实现。要想进一步验证该想法,可以体验一下这个NetBeans module(由Chapman开发),这正是他所说的用于 Properties的原型。

结论

在语言的发展中总是有有一个权衡的稳定和进步。这些技术所带来的优点是他们根本不影响平台或者语言。这样可以包容更多的错误,有益于我们进行快速的试验。由于开发者可以进行随意的试验,所以我们看到越来越多的人开始解决常见的样板代码“噪音”问题,例如匿名内部类语法等,同时将这些想法整理出来已获得价值。看看开发人员如何使用这些不同的方法开推动新的方向Java平台,这将是很有趣的。

毕业论文英文参考文献与译文

Inventory management Inventory Control On the so-called "inventory control", many people will interpret it as a "storage management", which is actually a big distortion. The traditional narrow view, mainly for warehouse inventory control of materials for inventory, data processing, storage, distribution, etc., through the implementation of anti-corrosion, temperature and humidity control means, to make the custody of the physical inventory to maintain optimum purposes. This is just a form of inventory control, or can be defined as the physical inventory control. How, then, from a broad perspective to understand inventory control? Inventory control should be related to the company's financial and operational objectives, in particular operating cash flow by optimizing the entire demand and supply chain management processes (DSCM), a reasonable set of ERP control strategy, and supported by appropriate information processing tools, tools to achieved in ensuring the timely delivery of the premise, as far as possible to reduce inventory levels, reducing inventory and obsolescence, the risk of devaluation. In this sense, the physical inventory control to achieve financial goals is just a means to control the entire inventory or just a necessary part; from the perspective of organizational functions, physical inventory control, warehouse management is mainly the responsibility of The broad inventory control is the demand and supply chain management, and the whole company's responsibility. Why until now many people's understanding of inventory control, limited physical inventory control? The following two reasons can not be ignored: First, our enterprises do not attach importance to inventory control. Especially those who benefit relatively good business, as long as there is money on the few people to consider the problem of inventory turnover. Inventory control is simply interpreted as warehouse management, unless the time to spend money, it may have been to see the inventory problem, and see the results are often very simple procurement to buy more, or did not do warehouse departments . Second, ERP misleading. Invoicing software is simple audacity to call it ERP, companies on their so-called ERP can reduce the number of inventory, inventory control, seems to rely on their small software can get. Even as SAP, BAAN ERP world, the field of

概率论毕业论文外文翻译

Statistical hypothesis testing Adriana Albu,Loredana Ungureanu Politehnica University Timisoara,adrianaa@aut.utt.ro Politehnica University Timisoara,loredanau@aut.utt.ro Abstract In this article,we present a Bayesian statistical hypothesis testing inspection, testing theory and the process Mentioned hypothesis testing in the real world and the importance of, and successful test of the Notes. Key words Bayesian hypothesis testing; Bayesian inference;Test of significance Introduction A statistical hypothesis test is a method of making decisions using data, whether from a controlled experiment or an observational study (not controlled). In statistics, a result is called statistically significant if it is unlikely to have occurred by chance alone, according to a pre-determined threshold probability, the significance level. The phrase "test of significance" was coined by Ronald Fisher: "Critical tests of this kind may be called tests of significance, and when such tests are available we may discover whether a second sample is or is not significantly different from the first."[1] Hypothesis testing is sometimes called confirmatory data analysis, in contrast to exploratory data analysis. In frequency probability,these decisions are almost always made using null-hypothesis tests. These are tests that answer the question Assuming that the null hypothesis is true, what is the probability of observing a value for the test statistic that is at [] least as extreme as the value that was actually observed?) 2 More formally, they represent answers to the question, posed before undertaking an experiment,of what outcomes of the experiment would lead to rejection of the null hypothesis for a pre-specified probability of an incorrect rejection. One use of hypothesis testing is deciding whether experimental results contain enough information to cast doubt on conventional wisdom. Statistical hypothesis testing is a key technique of frequentist statistical inference. The Bayesian approach to hypothesis testing is to base rejection of the hypothesis on the posterior probability.[3][4]Other approaches to reaching a decision based on data are available via decision theory and optimal decisions. The critical region of a hypothesis test is the set of all outcomes which cause the null hypothesis to be rejected in favor of the alternative hypothesis. The critical region is usually denoted by the letter C. One-sample tests are appropriate when a sample is being compared to the population from a hypothesis. The population characteristics are known from theory or are calculated from the population.

毕业论文外文翻译模版

吉林化工学院理学院 毕业论文外文翻译English Title(Times New Roman ,三号) 学生学号:08810219 学生姓名:袁庚文 专业班级:信息与计算科学0802 指导教师:赵瑛 职称副教授 起止日期:2012.2.27~2012.3.14 吉林化工学院 Jilin Institute of Chemical Technology

1 外文翻译的基本内容 应选择与本课题密切相关的外文文献(学术期刊网上的),译成中文,与原文装订在一起并独立成册。在毕业答辩前,同论文一起上交。译文字数不应少于3000个汉字。 2 书写规范 2.1 外文翻译的正文格式 正文版心设置为:上边距:3.5厘米,下边距:2.5厘米,左边距:3.5厘米,右边距:2厘米,页眉:2.5厘米,页脚:2厘米。 中文部分正文选用模板中的样式所定义的“正文”,每段落首行缩进2字;或者手动设置成每段落首行缩进2字,字体:宋体,字号:小四,行距:多倍行距1.3,间距:前段、后段均为0行。 这部分工作模板中已经自动设置为缺省值。 2.2标题格式 特别注意:各级标题的具体形式可参照外文原文确定。 1.第一级标题(如:第1章绪论)选用模板中的样式所定义的“标题1”,居左;或者手动设置成字体:黑体,居左,字号:三号,1.5倍行距,段后11磅,段前为11磅。 2.第二级标题(如:1.2 摘要与关键词)选用模板中的样式所定义的“标题2”,居左;或者手动设置成字体:黑体,居左,字号:四号,1.5倍行距,段后为0,段前0.5行。 3.第三级标题(如:1.2.1 摘要)选用模板中的样式所定义的“标题3”,居左;或者手动设置成字体:黑体,居左,字号:小四,1.5倍行距,段后为0,段前0.5行。 标题和后面文字之间空一格(半角)。 3 图表及公式等的格式说明 图表、公式、参考文献等的格式详见《吉林化工学院本科学生毕业设计说明书(论文)撰写规范及标准模版》中相关的说明。

java毕业论文外文文献翻译

Advantages of Managed Code Microsoft intermediate language shares with Java byte code the idea that it is a low-level language witha simple syntax , which can be very quickly translated intonative machine code. Having this well-defined universal syntax for code has significant advantages. Platform independence First, it means that the same file containing byte code instructions can be placed on any platform; atruntime the final stage of compilation can then be easily accomplished so that the code will run on thatparticular platform. In other words, by compiling to IL we obtain platform independence for .NET, inmuch the same way as compiling to Java byte code gives Java platform independence. Performance improvement IL is actually a bit more ambitious than Java bytecode. IL is always Just-In-Time compiled (known as JIT), whereas Java byte code was ofteninterpreted. One of the disadvantages of Java was that, on execution, the process of translating from Javabyte code to native executable resulted in a loss of performance. Instead of compiling the entire application in one go (which could lead to a slow start-up time), the JITcompiler simply compiles each portion of code as it is called (just-in-time). When code has been compiled.once, the resultant native executable is stored until the application exits, so that it does not need to berecompiled the next time that portion of code is run. Microsoft argues that this process is more efficientthan compiling the entire application code at the start, because of the likelihood that large portions of anyapplication code will not actually be executed in any given run. Using the JIT compiler, such code willnever be compiled.

毕业论文外文翻译模板

农村社会养老保险的现状、问题与对策研究社会保障对国家安定和经济发展具有重要作用,“城乡二元经济”现象日益凸现,农村社会保障问题客观上成为社会保障体系中极为重要的部分。建立和完善农村社会保障制度关系到农村乃至整个社会的经济发展,并且对我国和谐社会的构建至关重要。我国农村社会保障制度尚不完善,因此有必要加强对农村独立社会保障制度的构建,尤其对农村养老制度的改革,建立健全我国社会保障体系。从户籍制度上看,我国居民养老问题可分为城市居民养老和农村居民养老两部分。对于城市居民我国政府已有比较充足的政策与资金投人,使他们在物质和精神方面都能得到较好地照顾,基本实现了社会化养老。而农村居民的养老问题却日益突出,成为摆在我国政府面前的一个紧迫而又棘手的问题。 一、我国农村社会养老保险的现状 关于农村养老,许多地区还没有建立农村社会养老体系,已建立的地区也存在很多缺陷,运行中出现了很多问题,所以完善农村社会养老保险体系的必要性与紧迫性日益体现出来。 (一)人口老龄化加快 随着城市化步伐的加快和农村劳动力的输出,越来越多的农村青壮年人口进入城市,年龄结构出现“两头大,中间小”的局面。中国农村进入老龄社会的步伐日渐加快。第五次人口普查显示:中国65岁以上的人中农村为5938万,占老龄总人口的67.4%.在这种严峻的现实面前,农村社会养老保险的徘徊显得极其不协调。 (二)农村社会养老保险覆盖面太小 中国拥有世界上数量最多的老年人口,且大多在农村。据统计,未纳入社会保障的农村人口还很多,截止2000年底,全国7400多万农村居民参加了保险,占全部农村居民的11.18%,占成年农村居民的11.59%.另外,据国家统计局统计,我国进城务工者已从改革开放之初的不到200万人增加到2003年的1.14亿人。而基本方案中没有体现出对留在农村的农民和进城务工的农民给予区别对待。进城务工的农民既没被纳入到农村养老保险体系中,也没被纳入到城市养老保险体系中,处于法律保护的空白地带。所以很有必要考虑这个特殊群体的养老保险问题。

英语专业毕业论文翻译类论文

英语专业毕业论文翻译 类论文 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

毕业论文(设计)Title:The Application of the Iconicity to the Translation of Chinese Poetry 题目:象似性在中国诗歌翻译中的应用 学生姓名孔令霞 学号 BC09150201 指导教师祁晓菲助教 年级 2009级英语本科(翻译方向)二班 专业英语 系别外国语言文学系

黑龙江外国语学院本科生毕业论文(设计)任务书 摘要

索绪尔提出的语言符号任意性,近些年不断受到质疑,来自语言象似性的研究是最大的挑战。语言象似性理论是针对语言任意性理论提出来的,并在不断发展。象似性是当今认知语言学研究中的一个重要课题,是指语言符号的能指与所指之间的自然联系。本文以中国诗歌英译为例,探讨象似性在中国诗歌翻译中的应用,从以下几个部分阐述:(1)象似性的发展;(2)象似性的定义及分类;(3)中国诗歌翻译的标准;(4)象似性在中国诗歌翻译中的应用,主要从以下几个方面论述:声音象似、顺序象似、数量象似、对称象似方面。通过以上几个方面的探究,探讨了中国诗歌翻译中象似性原则的重大作用,在诗歌翻译过程中有助于得到“形神皆似”和“意美、音美、形美”的理想翻译效果。 关键词:象似性;诗歌;翻译

Abstract The arbitrariness theory of language signs proposed by Saussure is severely challenged by the study of language iconicity in recent years. The theory of iconicity is put forward in contrast to that of arbitrariness and has been developing gradually. Iconicity, which is an important subject in the research of cognitive linguistics, refers to a natural resemblance or analogy between the form of a sign and the object or concept. This thesis mainly discusses the application of the iconicity to the translation of Chinese poetry. The paper is better described from the following parts: (1) The development of the iconicity; (2) The definition and classification of the iconicity; (3) The standards of the translation to Chinese poetry; (4) The application of the iconicity to the translation of Chinese poetry, mainly discussed from the following aspects: sound iconicity, order iconicity, quantity iconicity, and symmetrical iconicity. Through in-depth discussion of the above aspects, this paper could come to the conclusion that the iconicity is very important in the translation of poetry. It is conductive to reach the ideal effect of “the similarity of form and spirit” and “the three beauties”. Key words: the iconicity; poetry; translation

大学毕业论文---软件专业外文文献中英文翻译

软件专业毕业论文外文文献中英文翻译 Object landscapes and lifetimes Tech nically, OOP is just about abstract data typing, in herita nee, and polymorphism, but other issues can be at least as importa nt. The rema in der of this sect ion will cover these issues. One of the most importa nt factors is the way objects are created and destroyed. Where is the data for an object and how is the lifetime of the object con trolled? There are differe nt philosophies at work here. C++ takes the approach that con trol of efficie ncy is the most importa nt issue, so it gives the programmer a choice. For maximum run-time speed, the storage and lifetime can be determined while the program is being written, by placing the objects on the stack (these are sometimes called automatic or scoped variables) or in the static storage area. This places a priority on the speed of storage allocatio n and release, and con trol of these can be very valuable in some situati ons. However, you sacrifice flexibility because you must know the exact qua ntity, lifetime, and type of objects while you're writing the program. If you are trying to solve a more general problem such as computer-aided desig n, warehouse man ageme nt, or air-traffic con trol, this is too restrictive. The sec ond approach is to create objects dyn amically in a pool of memory called the heap. In this approach, you don't know un til run-time how many objects you n eed, what their lifetime is, or what their exact type is. Those are determined at the spur of the moment while the program is runnin g. If you n eed a new object, you simply make it on the heap at the point that you n eed it. Because the storage is man aged dyn amically, at run-time, the amount of time required to allocate storage on the heap is sig ni fica ntly Ion ger tha n the time to create storage on the stack. (Creat ing storage on the stack is ofte n a si ngle assembly in structio n to move the stack poin ter dow n, and ano ther to move it back up.) The dyn amic approach makes the gen erally logical assumpti on that objects tend to be complicated, so the extra overhead of finding storage and releas ing that storage will not have an importa nt impact on the creati on of an object .In additi on, the greater flexibility is esse ntial to solve the gen eral program ming problem. Java uses the sec ond approach, exclusive". Every time you want to create an object, you use the new keyword to build a dyn amic in sta nee of that object. There's ano ther issue, however, and that's the lifetime of an object. With Ian guages that allow objects to be created on the stack, the compiler determines how long the object lasts and can automatically destroy it. However, if you create it on the heap the compiler has no kno wledge of its lifetime. In a Ianguage like C++, you must determine programmatically when to destroy the

毕业论文5000字英文文献翻译

英文翻译 英语原文: . Introducing Classes The only remaining feature we need to understand before solving our bookstore problem is how to write a data structure to represent our transaction data. In C++ we define our own data structure by defining a class. The class mechanism is one of the most important features in C++. In fact, a primary focus of the design of C++ is to make it possible to define class types that behave as naturally as the built-in types themselves. The library types that we've seen already, such as istream and ostream, are all defined as classesthat is,they are not strictly speaking part of the language. Complete understanding of the class mechanism requires mastering a lot of information. Fortunately, it is possible to use a class that someone else has written without knowing how to define a class ourselves. In this section, we'll describe a simple class that we canuse in solving our bookstore problem. We'll implement this class in the subsequent chapters as we learn more about types,expressions, statements, and functionsall of which are used in defining classes. To use a class we need to know three things: What is its name? Where is it defined? What operations does it support? For our bookstore problem, we'll assume that the class is named Sales_item and that it is defined in a header named Sales_item.h. The Sales_item Class The purpose of the Sales_item class is to store an ISBN and keep track of the number of copies sold, the revenue, and average sales price for that book. How these data are stored or computed is not our concern. To use a class, we need not know anything about how it is implemented. Instead, what we need to know is what operations the class provides. As we've seen, when we use library facilities such as IO, we must include the associated headers. Similarly, for our own classes, we must make the definitions associated with the class available to the compiler. We do so in much the same way. Typically, we put the class definition into a file. Any program that wants to use our class must include that file. Conventionally, class types are stored in a file with a name that, like the name of a program source file, has two parts: a file name and a file suffix. Usually the file name is the same as the class defined in the header. The suffix usually is .h, but some programmers use .H, .hpp, or .hxx. Compilers usually aren't picky about header file names, but IDEs sometimes are. We'll assume that our class is defined in a file named Sales_item.h. Operations on Sales_item Objects

毕业论文 外文翻译#(精选.)

毕业论文(设计)外文翻译 题目:中国上市公司偏好股权融资:非制度性因素 系部名称:经济管理系专业班级:会计082班 学生姓名:任民学号: 200880444228 指导教师:冯银波教师职称:讲师 年月日

译文: 中国上市公司偏好股权融资:非制度性因素 国际商业管理杂志 2009.10 摘要:本文把重点集中于中国上市公司的融资活动,运用西方融资理论,从非制度性因素方面,如融资成本、企业资产类型和质量、盈利能力、行业因素、股权结构因素、财务管理水平和社会文化,分析了中国上市公司倾向于股权融资的原因,并得出结论,股权融资偏好是上市公司根据中国融资环境的一种合理的选择。最后,针对公司的股权融资偏好提出了一些简明的建议。 关键词:股权融资,非制度性因素,融资成本 一、前言 中国上市公司偏好于股权融资,根据中国证券报的数据显示,1997年上市公司在资本市场的融资金额为95.87亿美元,其中股票融资的比例是72.5%,,在1998年和1999年比例分别为72.6%和72.3%,另一方面,债券融资的比例分别是17.8%,24.9%和25.1%。在这三年,股票融资的比例,在比中国发达的资本市场中却在下跌。以美国为例,当美国企业需要的资金在资本市场上,于股权融资相比他们宁愿选择债券融资。统计数据显示,从1970年到1985年,美日企业债券融资占了境外融资的91.7%,比股权融资高很多。阎达五等发现,大约中国3/4的上市公司偏好于股权融资。许多研究的学者认为,上市公司按以下顺序进行外部融资:第一个是股票基金,第二个是可转换债券,三是短期债务,最后一个是长期负债。许多研究人员通常分析我国上市公司偏好股权是由于我们国家的经济改革所带来的制度性因素。他们认为,上市公司的融资活动违背了西方古典融资理论只是因为那些制度性原因。例如,优序融资理论认为,当企业需要资金时,他们首先应该转向内部资金(折旧和留存收益),然后再进行债权融资,最后的选择是股票融资。在这篇文章中,笔者认为,这是因为具体的金融环境激活了企业的这种偏好,并结合了非制度性因素和西方金融理论,尝试解释股权融资偏好的原因。

英语专业翻译类论文参考文献

参考文献 一、翻译理论与实践相关书目 谢天振主编. 《当代国外翻译理论导读》. 天津:南开大学出版社,2008. Jeremy Munday. 《翻译学导论——理论与实践》Introducing Translation Studies---Theories and Applications. 李德凤等译. 北京:商务印书馆,2007. 包惠南、包昂. 《中国文化与汉英翻译》. 北京:外文出版社, 2004. 包惠南. 《文化语境与语言翻译》. 北京:中国对外翻译出版公司. 2001. 毕继万. 《世界文化史故事大系——英国卷》. 上海:上海外语教育出版社, 2003. 蔡基刚. 《英汉汉英段落翻译与实践》. 上海:复旦大学出版社, 2001. 蔡基刚. 《英汉写作对比研究》. 上海:复旦大学出版社, 2001. 蔡基刚. 《英语写作与抽象名词表达》. 上海:复旦大学出版社, 2003. 曹雪芹、高鄂. 《红楼梦》. 陈定安. 《英汉比较与翻译》. 北京:中国对外翻译出版公司, 1991. 陈福康. 《中国译学理论史稿》(修订本). 上海:上海外语教育出版社. 2000. 陈生保. 《英汉翻译津指》. 北京:中国对外翻译出版公司. 1998. 陈廷祐. 《英文汉译技巧》. 北京:外语教学与研究出版社. 2001. 陈望道. 《修辞学发凡》. 上海:上海教育出版社, 1979. 陈文伯. 《英汉翻译技法与练习》. 北京:世界知识出版社. 1998. 陈中绳、吴娟. 《英汉新词新义佳译》. 上海:上海翻译出版公司. 1990. 陈忠诚. 《词语翻译丛谈》. 北京:中国对外翻译出版公司, 1983. 程希岚. 《修辞学新编》. 吉林:吉林人民出版社, 1984. 程镇球. 《翻译论文集》. 北京:外语教学与研究出版社. 2002. 程镇球. 《翻译问题探索》. 北京:商务印书馆, 1980. 崔刚. 《广告英语》. 北京:北京理工大学出版社, 1993. 单其昌. 《汉英翻译技巧》. 北京:外语教学与研究出版社. 1990. 单其昌. 《汉英翻译讲评》. 北京:对外贸易教育出版社. 1989. 邓炎昌、刘润清. 《语言与文化——英汉语言文化对比》. 北京:外语教学与研究出版社, 1989. 丁树德. 《英汉汉英翻译教学综合指导》. 天津:天津大学出版社, 1996. 杜承南等,《中国当代翻译百论》. 重庆:重庆大学出版社, 1994. 《翻译通讯》编辑部. 《翻译研究论文集(1894-1948)》. 北京:外语教学与研究出版社. 1984. 《翻译通讯》编辑部. 《翻译研究论文集(1949-1983)》. 北京:外语教学与研究出版社. 1984. . 范勇主编. 《新编汉英翻译教程》. 天津:南开大学出版社. 2006. 方梦之、马秉义(编选). 《汉译英实践与技巧》. 北京:旅游教育出版社. 1996. 方梦之. 《英语汉译实践与技巧》. 天津:天津科技翻译出版公司. 1994. 方梦之主编. 《译学辞典》. 上海:上海外语教育出版社. 2004. 冯翠华. 《英语修辞大全》,北京:外语教学与研究出版社, 1995. 冯庆华. 《文体与翻译》. 上海:上海外语教育出版社, 2002. 冯庆华主编. 《文体翻译论》. 上海:上海外语教育出版社. 2002. 冯胜利. 《汉语的韵律、词法与句法》. 北京:北京大学出版社, 1997. 冯志杰. 《汉英科技翻译指要》. 北京:中国对外翻译出版公司. 1998. 耿占春. 《隐喻》. 北京:东方出版社, 1993.

电子信息工程专业毕业论文外文翻译中英文对照翻译

本科毕业设计(论文)中英文对照翻译 院(系部)电气工程与自动化 专业名称电子信息工程 年级班级 04级7班 学生姓名 指导老师

Infrared Remote Control System Abstract Red outside data correspondence the technique be currently within the scope of world drive extensive usage of a kind of wireless conjunction technique,drive numerous hardware and software platform support. Red outside the transceiver product have cost low, small scaled turn, the baud rate be quick, point to point SSL, be free from electromagnetism thousand Raos etc.characteristics, can realization information at dissimilarity of the product fast, convenience, safely exchange and transmission, at short distance wireless deliver aspect to own very obvious of advantage.Along with red outside the data deliver a technique more and more mature, the cost descend, red outside the transceiver necessarily will get at the short distance communication realm more extensive of application. The purpose that design this system is transmit cu stomer’s operation information with infrared rays for transmit media, then demodulate original signal with receive circuit. It use coding chip to modulate signal and use decoding chip to demodulate signal. The coding chip is PT2262 and decoding chip is PT2272. Both chips are made in Taiwan. Main work principle is that we provide to input the information for the PT2262 with coding keyboard. The input information was coded by PT2262 and loading to high frequent load wave whose frequent is 38 kHz, then modulate infrared transmit dioxide and radiate space outside when it attian enough power. The receive circuit receive the signal and demodulate original information. The original signal was decoded by PT2272, so as to drive some circuit to accomplish

相关文档
最新文档