非常感谢您能够提供专业的学习资料。
关于语句和表达式,在有些书里面的解释是:表达式是语句的组成部分,如a+1是一个表达式,而a+1;则是一个语句,只是没有副作用而已。 理解方向不同?
“在有些书里面的解释”是C语言书的解释吧。我在脚注里说得很清楚,在一种语言里是表达式,在另一种语言里可能就是语句。
关于“以解释方式执行的高级语言”可以说的再详细点,其实它里面还是有编译步骤的。如Java是先编译后解释:
(编译) (解释)
.java ------> .class -------> 执行
(字节码)
谢谢你的建议,这个我的确要考虑加上。
很喜欢您的书,在阅读过程中我发现有些乱码: 在 表 1.1. 一个语句的三种表示 下面那段中: “例如在第一条指令中,把movl ?,%eax这种格式的指令替换成机器码a1 ?,” 应该是: “例如在第一条指令中,把movl 0x804a01c,%eax这种格式的指令替换成机器码a1 1c a0 04 08,” 我知道能不能给出pdf或者chm版以方便阅读呢,我不知道怎么从docbook转换
习题仅有一些提示,却无参考答案。 虽然引导读者自己思考很重要,但是在知识的积累起,直接习正确的知识也是很重要的。思考和提升时在有了一定的积累之后才可以的,不然得花可能使读者陷一种自认为正确但实际上错误的境地。 根据我的经验,以前小时候考试,能感觉出来自己考得好坏,会的就答上了,不会的就往往写不上什么。但是后来长大了再考试,完全没有感觉了,因为你会的也会答上,不会的也能答上,而且还感觉自己答上的不会的准确度还挺高。因为人长大后,思想逐渐成熟,有了主见,反而很多时候自以为是或者坚持了错误的观点。 总之,我认为这种自学的教材,有必要提供参考答案而不仅仅是提示。
那个不是乱码,我就是用movl ?,%eax表示一种指令格式。?处可以替换
抱歉,我书上的习题不打算给答案。你如果有兴趣可以自己做了贴到网上和别人共享。
[计算机只能执行低级语言中的指令] 汇编语言也是低级语言,但是也必须要翻译为机器语言计算机才能执行。这点与之前的讲解有些含糊不清甚至矛盾。
没啥说的,谢谢啊!!!!
在陈浩网站又看到了你这个网站的连接,他的文章是:http://cocre.com/?p=360,很明显,他认为你是翻译的头两本参考资料。。。 请问具体什么情况?
什么情况你自己不会去看吗。问我干啥。NC得可以!
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp;
char ch[200];
int n;
fp = fopen("test3_1.c", "r");
if(fp == NULL)
{
printf("Error!\n");
}
else
{
n = 0;
while(fgets(ch, 180, fp) != NULL)
{
n++;
if(n == (argv[1][0]-'0'))
{
printf("%s", ch);
}
}
}
return 0;
}
http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
在linux下安装配置svn独立服务器
linux cgi编程
CGI是Common Gateway Interface的缩写, 一种基于浏览器的输入、在Web服务器上运行的程序方法. CGI脚本使你的浏览器与用户能够实现交互,可以用任意一种编程语言编写,下面以一个简单的shell脚本为例介绍ubuntu 9.04下的cgi环境搭建过程。
apache2环境
sudo apt-get install apache2
创建cgi-bin目录,这个目录系统不会自动创建,所有的cgi脚本都放在这里
mkdir /home/djstava/cgi-bin
vi /etc/apache2/sites-available/default
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
将上面的/usr/lib/cgi-bin改为/home/djstava/cgi-bin,系统会将此目录下的所有文件都当作是cgi脚本,如果只想把后缀名为.cgi的文件当作cgi程序,则可以在default文件里可以改
AddHandler cgi-script .cgi
这样修改完成后重启下apache2
sudo /etc/init.d/apache2 restart
编写一个简单的shell cgi程序getDate
#!/bin/bash
echo Content-type: text/plain
/bin/date
chmod a+x getDate
在游览器里输入http://192.168.1.102/cgi-bin/getDate,就能看见窗口打印出当前的日期了
如果需要向cgi程序传递参数,可以如下http://192.168.1.102/cgi-bin/getDate?para1=?¶2=?
cgi程序拿到参数后进行处理
杀掉占用特定端口的进程命令,1000为端口号:
kill -9 $(netstat -tlnp|grep 1000|awk '{print $7}'|awk -F '/' '{print $1}')
http://good.gd/342737.htm
首先对您表示感谢,受益匪浅! 我觉得您这个问题,不是一个零基础或者是一个稍微有点基础的人,在看完您的第一篇文章后,就能够答的出来的。
同意。不得不承认,本书在面向完全零基础的读者这一点上做得还不到位。
这本书要多长时间才看得完啊?
"具体一步一步怎么做完全由编译器或解释器决定,例如SQL语言(SQL,Structured Query Language,结构化查询语言)就是这样的例子" SQL和编译器或解释器有什么关系吗?
解释执行的语言:靠外部的一个容器来执行。外部的容器进行编译执行。---这是我个人理解的,也许错了。 编译语言:执行文件是机器指令,在速度上比解释语言更快,更直接。
对于“解释执行语言相比编译执行语言的优缺点”的个人浅答: 解释执行语言直接解释就执行,因此其速度较快,但是,凄美一条语句都对应一条命令,则其程序没后者那么紧凑! 个人浅见!
不错啊,支持!!!
非常感谢您提供的资料
解释型语言每次执行都要“解释”一次,而编译型语言执行前编译一次(编译为机器码)之后就可以直接执行。 相比而言,解释型见效快,编译型性能高。
非常感谢作者提供这么好的教程!
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!