导航:首页 > 源码编译 > 编译原理非计算机专业

编译原理非计算机专业

发布时间:2022-09-07 18:28:49

A. 非计算机专业为什么学c语言知乎

对于题主的问题,我觉得有点大了,这个问题就好像我问一个学习金融的人这样一个问题:对于非金融专业的学生,怎么入门金融学?

OK,我先说说我对计算机的理解吧,因为我觉得这对学习计算机比较有好处。

我所认为计算机是什么呢? 他是一种辅助设备,能够拓展人类的能力。能够轻易完成人类很难做到和很费时间和精力才能做到的事情。

Okey,理解说完了,开始干货:

计算机分为硬件和软件,硬件就是你看得见摸得着的,软件是你看得见摸不着的。介于题主是想说入门,我就不推荐计算机有关硬件的东西了,我主要推荐的是软件的方向。

通常对于计算机专业的人来说,了解计算机的硬件组成是非常有必要的。因为这不单单只是告诉你现象,还告诉你的本质。

学习计算机的软件(还有硬件):首先,你要看一本叫《计算机科学技术导论》的书(事实上不管你专攻硬件还是软件,这本书看看绝对没错),这本书包含了很多的基础内容,
比如2进制(“计算机世界”的语言,计算机非常笨,哦,也就是cpu非常笨,只能明白01010101,其他的统统不知道),
计算机硬件的组成(运算器,控制器,存储器,输入输出设备),
汇编语言(因为010101对于人类来说过于麻烦和难以理解,所以就把一段010101用几个字母定义,例如“mov”),
然后就是c语言,一些很懒的使用汇编语言的程序员觉得汇编语言还是不够方便,所以就发明了高级语言---c语言。(可以看出来计算机的发展史真的是一群很懒的人的奋斗史:),我希望有幸成为他们其中的一员。)
当然,里面还说了很多其他的东西。

看完了《计算机科学技术导论》以后,好吧,这是开胃菜,正菜开始上桌了。

C++ 。推荐书目:《C++ primer》 ,C++是一门计算机高级语言,计算机语言是拿来干什么的呢?就是和计算机交流的,你看,你和英国人说话要说英语,要和广东人说粤语,要和荷兰人说荷兰语。一样的道理。随着“hello world”在那个黑黑的界面中显示出来的时候,你甚至会怀疑:这TM就是编程?!
哦,这只不过是万里长征中的第一步。后面还有好多有趣的东西呢。
你要开始了解什么是变量,什么是常量,什么是循环,什么是类,什么是判断语句,什么是继承,等等等等。
如果你学习完了语法部分(就是上述说的),那么,恭喜你,基本上已经可以和别人说:我学过编程了。

好嘞,开始下一步:

因为题主的研究生是金融的,而且boss是做risk management的,那么算法就是必不可少的了。
《算法艺术及信息学竞赛》 这本书还不错,介绍了一些基本的算法(当然里面不会告诉你怎么进行风险管理,那是金融专业的事)。我只是粗略的过了一遍,所以就不献丑了。不过研究算法感觉就像在原始丛林里面爬山,一般人进去就跪了,有了大量的经验以后才能生还。

《数据结构》 ,在计算机科学或信息科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。(来自维基网络),这是修炼的内功心法之一。

《操作系统》,了解了操作系统的原理以后,才能更好的操作我们正在使用的系统。属于中级的课程吧。

编译原理》, 如果说计算机语言是魔法咒语的话,编译原理就是告诉你,这些魔法咒语是怎么生效的

《计算机组成原理》 哦,这个非常有趣,和操作系统有很大关系,但是这个是从硬件的层次上面(大部分来说)来解释计算机的组成

《软件工程》 估计题主暂时看不到这里的了,什么是软件工程呢?我的理解就是,把写软件规范化。形成一种规范以后好处就不言而喻了。

实话说,在学习的过程中会出现很多问题:
比如说语言选择的问题,你会听说JAVA无所不能,C#简单方便,python优雅至极,php开发速度快到带你飞。
我个人觉得,语言不是重点,语言只是个工具而已,重要的是人,就好像我们都会写中文,为啥俺和莫言的差距咋就这么大呢!
个人建议是:发挥各个语言的优势,在不同的情况使用不同的语言。
比如说:
1.想要开发个简单的网站,PHP是不二的选择(你可以想象用C++写网站的“快感”么?)
2.windows下的程序,C#绝对是王道,还有比微软自家的东西更懂自己的么?
3.android开发,平台的限制,最好还是用JAVA。
4.考虑到性能问题,如果你是个大神(那是不可能的,如果这样你就不会问怎么入门了)那绝对会使用到C++,对于一般的凡人,JAVA的回收机制以及够用了。

如果你想要买书,个人觉得最好不要买国人写的,因为国内大部分都是你抄我我抄你的节奏,最好买国外的书。图灵系列的我觉得不错。

我个人觉得,学习计算机并不神秘和复杂,甚至有些可怕的简单,有付出,就一定有回报。因为计算机的严谨性,他永远不会出错,你给出了正确的方法,就会得到正确的结果。

这里推荐题主一个小网站,名字叫做提问的智慧:
http://www.beiww.com/doc/oss/smart-questions.html

B. 编译原理 学的是什么

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 目前各个大学使用的教材机械工业出版社、国防工业出版社出版的《编译原理》。
编译原理课程
这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的 必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪 50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟 编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决着名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间 诞生不少名着的相关数论。

C. 编程从什么开始学(自学)我是名非计算机专业学生,

先从C语言开始吧 有了C的基础,学其他语言也会很方便的。
还要了解硬件的一些知识,如《计算机组成原理》
汇编语言(C语言是高级语言,最低级的是机器语言),了解一些低级的语言会有帮助的
编译原理也可以看(如果你看的懂的话)

D. 请问一下非计算机专业的想考计算机的研究生,需要准备哪些,本人大一。

跨考计算机专业的研究生都要做的准备:

  1. 首先要明确一点计算机专业不等于修电脑,不等于会编程,学计算机最基本的要数学好,还要有一定的逻辑推理能力,最重要的是对这个专业有兴趣,肯花很多时间去学习;

  2. 喜欢编程,那只能称为编程爱好者,不能称为学习过计算机的人,如果为了编程学习计算机,那最好放弃,因为计算机专业开的课程中,编程语言的学习是次要的,花费更多的,是学习计算机的原理;

  3. 计算机必须掌握的课程:计算机组成原理、计算机网络、操作系统、C、数据库、离散、概率论、算法、UML、数据结构、电工电子等,要跨专业考试,这些课程自己必须搞懂。

  4. 考研必考的科目:高数、英语、政治、组成原理、离散、概率、数据结构。

E. 非计算机专业目前从事软件开发,没有计算机基础。有没有必要去补学,如编译原理

作为一个计算机专业的,实话跟你讲,就算是本专业的学完了一年之后除非天天用否则也基本忘的差不多了。但是,如果你想在这行长时间做下去,每时每刻都要学习,如果只是做码农,你学这些语言什么的就够用了,要是真想好好做,操作系统编译数据结构算法组成原理这些必须得看,而且要学明白,虽然课本里的很多东西已然落伍了以后根本用不到,但是学是为了了解计算机的工作原理,这样哪怕只是做码农也能编出高质量代码。

总的来说就是,若是不想在这一行长干,不用学,要是想要做大牛,必须学还要学好

F. 非计算机专业的,如何学习编程,请各位给点参考意见,谢谢。

课程都是次要的。主要靠自学。你如果要做开发,首先得确定你所需要使用的语言,不管是Java,C#/VB.NET,还是C++。先看一些比较简单的案例,试着仿照范例自己编写出来。逐步由浅入深,才会得到锻炼。纯粹的开发靠的是经验,所以要多多积累。
C语言和C++还是比较接近的,作为程序员C++基本是必须掌握的语言。如果搞开发,数据库系统也绝对避免不了。《C++ Primer》、《数据库系统概念》都是经典好书。

G. 编译原理

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。编译原理课程是计算机相关专业学生的必修课程和高等学校培养计算机专业人才的基础及核心课程,同时也是计算机专业课程中最难及最挑战学习能力的课程之一。编译原理课程内容主要是原理性质,高度抽象[1]。

中文名
编译原理[1]
外文名
Compilers: Principles, Techniques, and Tools[1]
领域
计算机专业的一门重要专业课[1]
快速
导航
编译器

编译原理课程

编译技术的发展

编译的基本流程

编译过程概述
基本概念
编译原理即是对高级程序语言进行翻译的一门科学技术, 我们都知道计算机程序由程序语言编写而成, 在早期计算机程序语言发展较为缓慢, 因为计算机存储的数据和执行的程序都是由0、1代码组合而成的, 那么在早期程序员编写计算机程序时必须十分了解计算机的底层指令代码通过将这些微程序指令组合排列从而完成一个特定功能的程序, 这就对程序员的要求非常高了。人们一直在研究如何如何高效的开发计算机程序, 使编程的门槛降低。[2]
编译器
C语言编译器是一种现代化的设备, 其需要借助计算机编译程序, C语言编译器的设计是一项专业性比较强的工作, 设计人员需要考虑计算机程序繁琐的设计流程, 还要考虑计算机用户的需求。计算机的种类在不断增加, 所以, 在对C语言编译器进行设计时, 一定要增加其适用性。C语言具有较强的处理能力, 其属于结构化语言, 而且在计算机系统维护中应用比较多, C语言具有高效率的优点, 在其不同类型的计算机中应用比较多。[3]
C语言编译器前端设计
编译过程一般是在计算机系统中实现的, 是将源代码转化为计算机通用语言的过程。编译器中包含入口点的地址、名称以及机器代码。编译器是计算机程序中应用比较多的工具, 在对编译器进行前端设计时, 一定要充分考虑影响因素, 还要对词法、语法、语义进行分析。[3]
1 词法分析[3]
词法分析是编译器前端设计的基础阶段, 在这一阶段, 编译器会根据设定的语法规则, 对源程序进行标记, 在标记的过程中, 每一处记号都代表着一类单词, 在做记号的过程中, 主要有标识符、关键字、特殊符号等类型, 编译器中包含词法分析器、输入源程序、输出识别记号符, 利用这些功能可以将字号转化为熟悉的单词。[3]
2 语法分析[3]
语法分析是指利用设定的语法规则, 对记号中的结构进行标识, 这包括句子、短语等方式, 在标识的过程中, 可以形成特殊的结构语法树。语法分析对编译器功能的发挥有着重要影响, 在设计的过程中, 一定要保证标识的准确性。[3]
3 语义分析[3]
语义分析也需要借助语法规则, 在对语法单元的静态语义进行检查时, 要保证语法规则设定的准确性。在对词法或者语法进行转化时, 一定要保证语法结构设置的合法性。在对语法、词法进行检查时, 语法结构设定不合理, 则会出现编译错误的问题。前端设计对精确性要求比较好, 设计人员能够要做好校对工作, 这会影响到编译的准确性, 如果前端设计存在失误, 则会影响C语言编译的效果。[3]

阅读全文

与编译原理非计算机专业相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:769
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:844
安卓怎么下载60秒生存 浏览:803
外向式文件夹 浏览:240
dospdf 浏览:431
怎么修改腾讯云服务器ip 浏览:392
pdftoeps 浏览:496
为什么鸿蒙那么像安卓 浏览:735
安卓手机怎么拍自媒体视频 浏览:186
单片机各个中断的初始化 浏览:724
python怎么集合元素 浏览:481
python逐条解读 浏览:833
基于单片机的湿度控制 浏览:499
ios如何使用安卓的帐号 浏览:883
程序员公园采访 浏览:812
程序员实战教程要多长时间 浏览:979
企业数据加密技巧 浏览:135
租云服务器开发 浏览:814
程序员告白妈妈不同意 浏览:336
攻城掠地怎么查看服务器 浏览:601