我想开发一款比易语言还强的编程工具,需要什么样的知识???

 我来答
猪头帮帮主麦兜
2011-05-28 · TA获得超过790个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:683万
展开全部
这个问题,我尝试一下认真来回答吧。
首先,你要熟悉PE文件结构,我说的熟悉,是彻头彻尾的熟悉,举个例子,我要向一个可执行文件的某一个段中添加一段代码,你要清楚这一段代码的加入会对这个可执行文件的各个属性还有执行过程、资源分配造成什么影响。
然后,你需要熟悉操作系统的API,这个你当然可以参考库,但是你需要把操作系统中会用到的API、功能调用都总结出来,然后用你的语言归纳、定义和做好编译对应准备;
再有,你要对驱动编程相当熟悉,因为作为一个编程工具,设计内核态和驱动是少不了的;
还有,你要对编译原理和编译器编写熟悉,因为你需要做一个编译器,当然,你需要的也许仅仅是做一个把编程语言整理成汇编语言的解释器,但无论如何,编译器的预处理、编译、代码优化过程对算法知识的要求很高,或者说,一套IDE里,编译器是技术含量最高的部分;
除了这些,你还需要一整套可行、灵活的面向用户的语法体系和规则,这是一个编程语言中的主要部分;
最后,你需要熟悉用户习惯,你要根据用户习惯去写一个编辑器——易语言的编辑器真的很强大。
追问
如何了解用户的使用习惯
追答
对于易语言这样子的编程语言来说,了解用户习惯更主要的用户群体不是专业的程序员,而是对填写表格比较熟悉的人,例如普通网民,至于怎样去收集用户使用习惯的数据,呵呵,我没能力回答。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最爱NOD32
2011-05-27 · TA获得超过489个赞
知道答主
回答量:165
采纳率:0%
帮助的人:56.9万
展开全部
你不是搞笑吧
要有深厚的汇编基础,要有深厚的数学基础(这个很重要)。
还要看你怎么去做架构,比如类似java的虚拟机平台(这样就不能使用系统API了),还是和操作系统结合(可以使用系统API),但是扩平台很难。
你还需要会机器语言,0和1,因为还需要做出一个编译器,C#之父当年一个很强大的事情就是,I编译器出了个问题,然后在一堆2进制代码里,指出1的位置偏离了原来的位置。
解释器稍微简单点,你可以去看看脚本。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式