代码之家  ›  专栏  ›  技术社区  ›  Warty

我想描述的是什么计算机科学主题?

  •  18
  • Warty  · 技术社区  · 16 年前

    int i = j%348
    

    问题是,我知道j%348的作用,它将j除以348,然后找到余数。我不知道的是电脑是怎么做到的。

    同样,我知道

    try
    {
     blah();
    }catch(Exception e){
     blah2();
    }
    

    blah 如果blah抛出,它将调用 blah2 ... 然而,我不知道计算机是如何做到这一点的,而不是错误。。。终止或终止执行。

    我认为为了让我在编程方面“更好”,我应该知道我的代码真正在做什么[这可能也会帮助我优化和。。。犯错误不要做傻事]

    我想我所要求的可能是大学里教的一些很重要的东西,但说实话,如果我能学一点,我会很高兴的。


    因为老实说,我不知道。

    9 回复  |  直到 16 年前
        1
  •  7
  •   Cam    16 年前

    你应该 ,及 然后进入编译器设计

    我找到了这个资源,非常酷: http://en.wikibooks.org/wiki/X86_Disassembly

    基本上,它是一本汇编手册,解释了如何在汇编中执行高级代码的一些概念,并提供了一些示例,展示了编译器如何在汇编中生成函数等。

        2
  •  12
  •   Avi    16 年前

    我想说第一部分是计算机体系结构,而第二部分是编程语言。

    如果您有兴趣了解更多有关计算机如何执行程序的知识,请参阅一些有关计算机体系结构的好书:

    我不确定应该推荐什么来理解编程语言构造,比如捕获异常。可能是一本很好的编译书。

    特别是在第二个示例中,不同的编程语言的实现可能非常不同。例如,运行在java等虚拟机上的语言将具有虚拟机来保护它并抛出某些类型的异常,而在C++中,这将被不同地处理。

        3
  •  1
  •   Ignacio Vazquez-Abrams    16 年前

        4
  •  1
  •   kgiannakakis    16 年前

    我认为您正在研究编译器如何将高级语言代码转换为机器指令。看看编译器设计。这是一部经典之作 book .

        5
  •  1
  •   Vatine    16 年前

    听起来好像你在谈论编译器构造和语言设计。

    可以实现异常的(最)通用的“CS事物”可能是continuations(如Scheme中所示)。如果你没有读过thouhg“计算机程序的结构和解释”(SICP, Web page here, including full text )也许值得快速浏览一下,它只涉及编译器的构造。

        6
  •  0
  •   Richard Miskin    16 年前

    用于计算模数的实际机制可能因语言而异,然后因每种语言的实现而异。这里有一些关于算法的信息 here

    也许算法是你感兴趣的领域?

        7
  •  0
  •   WarrenFaith    16 年前

    媒体信息学第一学期(我在第五学期),课程:数学:


    x%y=z

    计算:

    1. 3.3333四舍五入为3
    2. 3 * 3 = 9
    3. 10 - 9 = 1

    作为一个公式:
    10-(数学四舍五入(10/3)*3)=1

    使用变量:
    x%y=x-(数学四舍五入(x/y)*y)

        8
  •  0
  •   anon    16 年前

    诺姆·尼桑(Noam Nisan)和希蒙·肖肯(Shimon Schocken)在上面提到的书《计算系统的元素:从第一原理构建现代计算机》中,以整体的方式解决了您提出的各种问题:从体系结构到虚拟机,从编译器到操作系统。

        9
  •  0
  •   justthisguy justthisguy    16 年前

    如果你不想花钱,有一本很棒的书叫《计算机组织与设计基础》 here (PDF链接)。我还推荐微软出版社出版的Charles Petzold的《代码》。