【导语】“ningmeng”通过精心收集,向本站投稿了9篇编译及编译理论初探,下面是小编为大家带来的编译及编译理论初探,希望大家能够喜欢!
- 目录
篇1:编译及编译理论初探
编译及编译理论初探
作为翻译中一种独特的处理方式,编译可以用凝练的语言和比较小的篇幅介绍原作鸿篇巨著的`中心内容,也可以在比较短的时间内完成译介大量材料的工作,速度快、效率高、实用性强.这些特性使得编译在翻译实践中得到了越来越广泛的应用.
作 者:徐建国 XU Jian-guo 作者单位:黔西南民族师范高等专科学校,贵州,兴义,562400 刊 名:遵义师范学院学报 英文刊名:JOURNAL OF ZUNYI NORMAL COLLEGE 年,卷(期):2008 10(2) 分类号:H315.9 关键词:编译 广义 狭义 文化 艺术篇2:编译
编译
编译biān yì[释义]①(动)编辑和翻译。
②(名)做编译工作的人。
[构成] 并列式:编+译[例句] ~是指编辑和翻译。(作主语)他是编辑部的~。(作宾语)~人员有两个。(作定语)篇3:nginx模块编译
1.上传nginx1.4.7并解压
2.查看ngixn版本极其编译参数
/usr/local/nginx/sbin/nginx -V
3.编译,但不安装
# cd nginx-1.4.7
以下是重新编译的代码和模块
##注意,是添加编译模块,所以必须把第2步看到的编译模块加上,下面列出的是新加模块
#./configure --with-http_stub_status_module--with-http_ssl_module--with-file-aio --with-http_realip_module
最终编译模块:
#./configure --with-http_ssl_module --with-http_stub_status_module--with-http_gzip_static_module --with-file-aio --with-http_realip_module--with-pcre=/mnt/tmp/pcre-8.34 --with-zlib=/mnt/tmp/zlib-1.2.8--with-openssl=/mnt/tmp/openssl-1.0.1j
#make千万别make install,否则就覆盖安装了
make完之后在objs目录下就多了个nginx,这个就是新版本的程序了
4.备份旧程序,替换新程序
备份旧的nginx程序
#cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
把新的nginx程序覆盖旧的
#\\cp objs/nginx /usr/local/nginx/sbin/nginx
如果提示“cp:cannot create regular file `/usr/local/nginx/sbin/nginx‘: Text file busy”
建议使用如下语句cp
#cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
5.验证并重启新程序
测试新的nginx程序是否正确
#/usr/local/nginx/sbin/nginx -t
nginx: theconfiguration file /usr/local/nginx/conf/nginx.conf syntaxis ok
nginx:configuration file /usr/local/nginx/conf/nginx.conf testissuccessful
平滑重启nginx
#/usr/local/nginx/sbin/nginx -s reload
6.查看ngixn版本极其编译参数
#/usr/local/nginx/sbin/nginx-V
篇4:hadoop2.5.2eclipse插件编译
最近在搞hadoop,所以编译hadoop-eclipse插件是少不了的 !
先说下我的编译环境:
hadoop: hadoop-2.5.2
OS:ubuntu 14.4 64位(虚拟机)
eclipse: eclipse-jee-luna-SR1-linux-gtk-x86_64.tar.gz
1.下载源码:
github.com/winghc/hadoop2x-eclipse-plugin
2.修改配置文件
libraries.properties
# Licensed under the Apache License, Version 2.0 (the “License”);# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an “AS IS” BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#This properties file lists the versions of the various artifacts used by hadoop and components.#It drives ivy and the generation of a maven POM# This is the version of hadoop we are generatinghadoop.version=2.2.0hadoop-gpl-compression.version=0.1.0#These are the versions of our dependencies (in alphabetical order)apacheant.version=1.7.0ant-task.version=2.0.10asm.version=3.2aspectj.version=1.6.5aspectj.version=1.6.11checkstyle.version=4.2commons-cli.version=1.2commons-codec.version=1.4=commons-collections.version=3.1commons-configuration.version=1.6commons-daemon.version=1.0.13=commons-httpclient.version=3.0.1=commons-lang.version=2.4=commons-logging.version=1.0.4commons-logging-api.version=1.0.4=commons-math.version=2.1commons-el.version=1.0commons-fileupload.version=1.2=commons-io.version=2.1commons-net.version=3.1core.version=3.1.1coreplugin.version=1.3.2hsqldb.version=1.8.0.10ivy.version=2.1.0jasper.version=5.5.12=jackson.version=1.8.8#not able to figureout the version of jsp & jsp-api version to get it resolved throught ivy# but still declared here as we are going to have a local copy from the lib folderjsp.version=2.1jsp-api.version=5.5.12jsp-api-2.1.version=6.1.14jsp-2.1.version=6.1.14jets3t.version=0.6.1jetty.version=6.1.26jetty-util.version=6.1.26=jersey-core.version=1.8=jersey-json.version=1.8=jersey-server.version=1.8=junit.version=4.5jdeb.version=0.8jdiff.version=1.0.9json.version=1.0kfs.version=0.1log4j.version=1.2.15lucene-core.version=2.3.1mockito-all.version=1.8.5jsch.version=0.1.42oro.version=2.0.8rats-lib.version=0.5.1servlet.version=4.0.6servlet-api.version=2.5slf4j-api.version=1.4.3slf4j-log4j12.version=1.4.3wagon-http.version=1.0-beta-2xmlenc.version=0.52xerces.version=1.4.4
以上标“=”的部分我修改为hadoop2.5.2所用的jar包版本
hadoop.version=2.5.2commons-collections.version=3.2.1commons-httpclient.version=3.1commons-lang.version=2.6commons-logging.version=1.1.3commons-math.version=3.1.1commons-io.version=2.4jackson.version=1.9.13jersey-core.version=1.9jersey-json.version=1.9jersey-server.version=1.9junit.version=4.11
build.xml
<?xml version=“1.0” encoding=“UTF-8” standalone=“no”?>
以上以标有“=”的部分我修改为 lib/commons-cli-${commons-cli.version}.jar, lib/commons-configuration-${commons-configuration.version}.jar, lib/commons-httpclient-${commons-httpclient.version}.jar, lib/commons-lang-${commons-lang.version}.jar, lib/jackson-core-asl-${jackson.version}, lib/jackson-mapper-asl-${jackson.version}.jar, lib/slf4j-log4j12-${slf4j-log4j12.version}.jar, lib/slf4j-api-${slf4j-api.version}.jar,标有“+”的部分是我加上的, hadoop2.5.2eclipse插件编译 makePlus.sh 原文件内容 ant jar -Dversion=2.0.4 -Declipse.home=/opt/eclipse -Dhadoop.home=/usr/share/hadoop修改后 ant jar -Dversion=2.5.2 -Declipse.home=/home/hadoop/eclipse -Dhadoop.home=/home/hadoop/hadoop-2.5.2 使之可以执行 chmod +X makePlus.sh 3.编译 进入makePlus.sh所在目录,执行我们修改好的makePlus.sh文件 ./makePlus.sh 在这过程中有一步ivy-resolve-common很长时间没反应,我不清楚是死掉了还是在运行中所以就一直等啊等,上网查说这一步是很花时间的我也就没有在意, 可是都一下午了还是没有任何提示成功或者失败。无奈,拿起qq搜了几个hadoop的群,进去问下,有人说慢很正常,网络卡顿了吧。我这一想有可能是网络不通,可是我的虚拟机是能联着网的,只有一种可能了,就是编译过程中需求去外国的网站下载所依赖的包,需要****。想到这里我立马开个****软件,再次执行 ./makePlus.sh,奇迹出现了!哈哈 编译成功了 Buildfile: /home/hadoop/hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin/build.xmlcheck-contrib:init: [echo] contrib: eclipse-plugininit-contrib:ivy-download:[get] Getting: repo2.maven.org/maven2/org/apache/ivy/ivy/2.1.0/ivy-2.1.0.jar[get] To: /home/hadoop/hadoop2x-eclipse-plugin/ivy/ivy-2.1.0.jar[get] Not modified - so not downloadedivy-probe-antlib:ivy-init-antlib:ivy-init:[ivy:configure] :: Ivy 2.1.0 - 20090925235825 :: ant.apache.org/ivy/ ::[ivy:configure] :: loading settings :: file = /home/hadoop/hadoop2x-eclipse-plugin/ivy/ivysettings.xmlivy-resolve-common: [echo] loglevel:quiet;ant.project.name:eclipse-pluginivy-retrieve-common:[ivy:cachepath] DEPRECATED: 'ivy.conf.file' is deprecated, use 'ivy.settings.file' instead[ivy:cachepath] :: loading settings :: file = /home/hadoop/hadoop2x-eclipse-plugin/ivy/ivysettings.xmlcompile: [echo] contrib: eclipse-plugin [javac] /home/hadoop/hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin/build.xml:76: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable buildsjar: [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/jackson-core-asl-1.9.13.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/jackson-core-asl-1.9.13.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/jackson-mapper-asl-1.9.13.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/jackson-mapper-asl-1.9.13.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/slf4j-log4j12-1.7.5.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/slf4j-api-1.7.5.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/slf4j-api-1.7.5.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/guava-11.0.2.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/guava-11.0.2.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/hadoop-auth-2.5.2.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/hadoop-auth-2.5.2.jar [copy] Copying 1 file to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib [copy] Copying /home/hadoop/hadoop-2.5.2/share/hadoop/common/lib/netty-3.6.2.Final.jar to /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/lib/netty-3.6.2.Final.jar [jar] Building jar: /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.5.2.jarBUILD SUCCESSFULTotal time: 16 secondslog4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).log4j:WARN Please initialize the log4j system properly.log4j:WARN See logging.apache.org/log4j/1.2/faq.html#noconfig for more info. [jar] Building jar: /home/hadoop/hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.5.2.jar就是编译好的jar包所在路径了! 4.测试 把编译好的hadoop-eclipse-plugin-2.5.2.jar放在eclipse的plugins目录下,重启eclipse,配置好后发现不能 new hadoop location,现象是点击后没有任何反应。只好退出eclipse 在终端里进入eclipse 目录执行 ./eclipse -clean -consolelog -debug重新进入eclipse 点击 new hadoop location,查看终端里报出的异常信息java.lang.NoClassDefFoundError 经过一番百度之后build.xml添加绿色部分重新编译,放在eclipse的plugins目录下重启eclipse,便可以使用了 = 如何编译无效对象 1、查找无效对象: SELECT object_name, object_type FROM dba_objects WHERE status = 'INVALID'; 2、编译无效对象: 手工编译: ALTER PACKAGE pkg1 COMPILE REUSE SETTINGS; 使用PL/SQL Package编译 : revalidate all invalid objects in the database, in parallel and in dependency order: begin utl_recomp.recomp_parallel; end; / revalidates the procedure UPDATE_SALARY in schema HR: begin dbms_utility.validate('HR', 'UPDATE_SALARY', namespace=>1); end; / revalidates the package body HR.ACCT_MGMT: begin dbms_utility.validate('HR', 'ACCT_MGMT', namespace=>2); end; / 编译程序在计算机科学与技术的发展历史中发挥了巨大作用,是计算机系统的核心支撑软件。而“编译原理”这门课程一直以来是国内外大学计算机相关专业的重要课程。因为它的知识结构贯穿程序设计语言、系统环境以及体系结构,能以相对的视角体现从软件到硬件以及软硬件协同的整机概念。其理论基础又涉及形式语言与自动机、数据结构与算法等计算机学科的许多重要方面,为联系计算机科学理论和计算机系统的典范。 虽然编译原理这门课程在大多数的人里认为枯燥无味,学起来就像看天书一样。然而学习这门课程还是有一定的好处的。比如可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的,可以更加客观的比较不同语言的差异,并且学习新的语言的效率也会更加高,语言转换也会更加游刃有余。 不学“编译原理”这门课程的话,自己的编程思想会很浅显。而且编程也只仅仅停留在编程上,无法深入理解其中的原理。 学习编译原理的话,从文法、正规式、NFA与DFA的定义,下手,要用心动脑去体会 从联系最紧密的操作系统来说吧,你写多线程/多进程的程序就得和操作系统的知识打交道。写多线程得加锁吧,临界区、死锁的四个条件之类的标准的操作系统的内容吧(不得不吐槽一下,某国内一线电商干了三年的程序猿,写多线程居然不知道加锁,也是醉了)。进程间通信的几种方式什么管道、socket、共享内存等,这也是操作系统的内容吧。文件系统,这也是经常要打交道的东西。还有内存什么的,你做 Android 开发,这些里边有很多东西都在系统层面被封装好了,但是你要是不知道原理,一旦出了错根本无从调试,况且你该不会打算写一辈子写 Android 就是填逻辑吧。 然后,是编译原理,普通的程序猿是接触不到编译器或者虚拟机的开发的。但是这并不意味着编译原理就用不到。说个最常见的读取配置文件,只要你的配置文件有自定义的语法,你就要用编译原理的东西。还有类似于自动生成代码啦、正则表达式啦这些都算是编译原理的内容。你既然是写 Java 的不了解虚拟机怎么可以,最基本的字节码总是需要能看懂的吧,分析一些疑难杂症的时候字节码还是很有用的。 最后,是计算机原理,如果只是做应用开发的话计算机原理其实不必要掌握的多深入,但是一些基本的概念还是要清楚的。比如 寄存器、缓存、中断什么的,关键的时候可以帮助你调试。在一些对性能要求非常高的场合,也是很有作用的。此外,学了计算机组成基本上汇编差不多能够看懂了吧,这个对于优化代码、查错、反汇编还是很有用的。 通过这一学期的学习,我觉得编译原理是一门理论性很强的课程,从文法和语言的概念到LL(1)文法和LR(0)文法的分析,几乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、掌握相关的知识,当然在这一过程中也存在很多问题,比如我们后期学习具体文法的分析方法时,对于文法的概念不够清晰,影响了上课的效率,知道老师再次给我们讲解了文法等基础的知识点,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点之间的关联。此外,这门课程的课时被安排得很少,一周只有一次,这样很不利于我们对这门重要课程的理解和掌握。但是我觉得我们很幸运,因为老师在有限的课程中尽量将知识点以比较容易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的知识,对于我们提出的问题,无论课上或是课外,老师一直是不厌其烦,甚至利用课余时间为我们讲解重要的难题。 编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从LL(1)到LR(0),问题不断被解决的同时,又有一个个新的问题提了出来。对计算机语言世界的知识积累,像滚雪球一样越滚越大。这个逐渐递进,逐渐解决问题的过程对我来说是收获很大的。整个过程好像踏着前人研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他们解决问题的思路。编译原理的课程带给我的不只是如何去编译程序这样的理论知识,相信更重要的是一种如何“自动计算”的思路。通过对相关编译问题的具体分析,让我体会最深的是一种“自动计算”的思想,同时完成编译试验后,更是感到了一种“自动计算”的快乐。”然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技术的学生,我明白编译原理是软件工程的'基础,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。 经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。 一、对实验原理有更深的理解 通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的找范文就来。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。 二、对该理论在实践中的应用有深刻的理解 通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。 三、激发了学习的积极性 通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。 在这次课程设计中,我就是按照实验指导的.思想来完成。加深了理解文件系统的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。 四、理解了该知识点以及学科之间的融合渗透 本次课程设计程序部分是用c语言编写的,把《计算机操作系统》,《编译原理》,《算法分析与设计》《c语言》四门学科联系起来,把各个学科之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的认识更加深刻。使我加深了对《计算机操作系统》,《编译原理》,《算法分析与设计》《c语言》四门课程的认识。2篇编译原理的编译过程一般包括:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成五个阶段。 通过本次设计,使我对编译原理有了进一步的了解,更加巩固了所学习的知识。我所选择的题目是《LL(1)文法的编译器自动生成器的生成与实现》,这是在语法分析阶段。语法分析的主要任务就是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位。通过语法分析,确定整个输入串是否构成语法上正确的“程序。”对此,我查找资料设计出一个简单的程序。输入字符串,进行简单的分析。编译原理是一门比较抽象的课程,也比较难以学得透。从一开始孙老师就对我们说,这个课程,如果你不认真去学,你就学不懂;如果你想不听课,然后自学的话,你肯定会花比人家多很多的时间。确实是这样,现在已经结束了,我庆幸当初听老师的话,比较认真地去听课。即使如此,还是有很多东西很模糊的。但至少对编译这个概念有一定的了解。 如果要成为一名优秀的软件开发工作者,则这门课程必不可少。它是软件工程的基础,学好它,对软件的设计有很大的帮助。通过本次的设计,我更加体会到这一点。刚开始设计的时候,我根本就找不着路。平时的实验老师都有给出部分代码或者代码,而这次,却是要自己通过学习来完成。我们学过C和C++程序设计语言,理所当然会想到使用这两种语言之一来实现。 我选择了C++,因为这个学期也在学习,刚好可以通过课程设计再次巩固。在网上找了一些资料,也参考过别人所写的代码,慢慢开始写……刚好期末考试,也就写写停停,拖了比较长时间。无论如何,当初只是在想,只要我有得交就是了。后来写着写着,来感觉了,就觉得,其实学习也是一件挺有趣的事。特别是当自己的代码能运行的时候,那种心情真的特兴奋。尽管代码并不完善,并且会有错误,不过,今后我会再次努力学习,然后把它做得更好。 ★ 理论征文 ★ 理论学习制度 ★ 理论故事范文 ★ 论文理论框架范文 ★ 教育教学理论 ★ 《长尾理论》读后 ★ 教学理论学习心得 ★ 柳宗元师道理论篇5:如何编译无效对象
篇6:编译原理学习心得
篇7:编译原理学习心得
篇8:编译原理学习心得
篇9:编译原理课程设计心得体会
编译及编译理论初探(合集9篇)