正文

电脑2007-12-02 13:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hujing/31231.html

分享到:

前言
Computer是一个自控制机器,通过不断的执行指令来工作,是没有思维的,而人是有思维的,所以能用几十个指令编制各种各种样的程序,编制的程序只不过是N个指令,是具体,而程序的编制,是有科学的,有技术、方法的,是抽象,编制程序就是把抽象的程序编制成具体的N个指令.

具体
Computer的CPU,是运算和执行合在一起控制器,CPU的运作就是等待(也就是循环)->译码->运算->执行,另外,还有指令流水线,就是把指令分成N份, 分份并行执行.CPU有译码,人也有,人的译码就是把抽象译成具体,Computer的具体就是指令,人的具体就是Code.

抽象
program的书籍,有理论,技术,人的思维,有分析,编制,program的组成是code,和指令一样,只是code更接近人的抽象,所以不是用指令编制,而是code.抽象是虚拟的,是可以用code实现的构想,抽象也是复杂的,porgram的抽象要涉及理论、技术,人的抽象涉及分析、编制.其实编程序也就是这样无聊却必须的.

分析
要编制一个程序,先要分析,分析程序要做什么工作,怎么实现,要用什么编制,程序的正确性、错误的处理、失败率的分析、扩展、易用、高效等等,用一个最简单的程序说明:
/* hello.c */

#include<stdio.h>

int main()
{
    printf("hello world!\n");
    return 0;
}

这里就是以打印一个字符串为目标,所以,第一步重要的就是正确的完成目标,第一步实现了,就该第二步了,第二步是分析错误(分析各种意外情况下的错误),那这个程序有什么错误,这个程序就是第5行,正确的做法是先const char c[13]={"hello world!"},常量的内容为要打印的内容,然后在prinf("%s\n",c);,这个错误不是编制错误,而是因为不这样做,编制出来的程序就会声明变量、打印,虽然是一样,但在编制时是不可控制的,要做到错误少,就要能在编制时控制.
/* hello.c */

#include<stdio.h>

int main()
{
    const char c[13]={"hello world!"};
    printf("%s\n",c);
    return 0;
}

现在的程序错误少了,可以忽略了,继续第三步,高效,基本上,虽然程序表面上已经最高了,但将在后面讨论,第四步,扩展,也将在后面讨论.

更深入的错误
错误最基本的就是编制错误,而编制错误易检查,易修改,就忽略不讲,现在就讲执行时错误,执行这个程序,也许内存不够不能执行,也许执行到一半内存够,那么针对这个问题,就对程序修改一下
/* hello.c */

#include<stdio.h>

int main()
{
    const char fname[2]={"s"};
    char c;
    FILE *f;
    f=fopen(fname,"r");
    for(;;)
        {
        if(feof(f))
            {
            break;
            }    
            c=getc(f);
            printf("%c",c);    
        }
        fclose(f);    
        return 0;
}

阅读(1672) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册