标签: computer-science

哪种计算机科学概念最重视?

出于某种原因,我注意到我最终在工作中使用了很多有限状态机.特别是,当我实现自定义TCP /串行协议时,它们非常有用并且产生非常强大的输出(在我看来).

我在CS课上的日子远远落后于我.因此,我对那里学到的东西的回忆是模糊的.我很好奇是否有其他人在利用我已经忘记的概念.

没有正确的答案.投票包含您最常使用的概念的答案.我们最终会得到最常用的概念.对我来说,这将是一个要研究的东西清单.

- 罗伯特·

computer-science

22
推荐指数
14
解决办法
3578
查看次数

计算机如何将2个数字相乘?

计算机如何对2个数字进行乘法运算,比如100*55.

我的猜测是计算机重复添加以实现乘法.当然,这可能是整数的情况.但是对于浮点数,必须有一些其他逻辑.

注意:这在面试中被问到了.

computer-science mathematical-optimization

22
推荐指数
4
解决办法
2万
查看次数

两组N人可以围绕一圈找到对方吗?

这是一个算法问题,我不确定它是否有解决方案.我认为这是一个更通用的计算机科学问题的具体案例,没有解决方案,但我宁愿不披露哪一个避免种植偏见.它来自现实生活中的情况,其中手机没有信用,因此,我们没有远程通信.

两组人,每人有2人(但可能适用于N人)安排在公园中心见面,但在会议时,公园关闭.现在,他们将不得不在公园周围的其他地方见面.是否有一个算法,每个人都可以遵循以在一个点汇合所有?

例如,如果每个小组分成两个并四处走动,当他们发现另一个人继续跟那个人一起时,他们都会聚集在公园的另一边.但是,如果另一组做同样的事情,那么他们将无法将其他组的成员带到他们身边.这不是一个可能的解决方案.

我不确定我是否解释得很好.我可以尝试绘制图表.

algorithm computer-science

22
推荐指数
5
解决办法
2545
查看次数

希尔伯特系统 - 自动化证明

我试图在Hilbert风格的系统中证明语句〜(a-> ~b)=> a .不幸的是,似乎不可能想出一个通用算法来找到证据,但我正在寻找一种强力型策略.关于如何攻击这个的任何想法都是受欢迎的.

math verification logic computer-science theorem-proving

21
推荐指数
4
解决办法
4222
查看次数

其他参考斯大林编译器如何粗暴地优化?

JM Siskind的研究声明指出:

Stalin是Scheme的优化编译器,它执行整个程序的静态分析,并使用该分析的结果生成极其高效的代码.斯大林利用大量的静态分析技术.它执行一种新形式的多变量流分析,使用迭代单变量流分析来执行流向分裂:克隆程序的专用副本和将目标分配到这些克隆的每个调用点.它使用流量分析的结果执行寿命分析,逃逸分析,点分析和必须别名分析.这些分析支持一种新颖的轻量级闭包转换形式,它消除了大多数闭包槽,使用诸如可变全球化和本地化之类的技术,压缩静态后链,并且通常从程序中消除大多数闭包.它还使用上述分析来支持基于流的区域存储管理,其中运行时垃圾收集在每个抽象值和每个程序点的基础上被静态分配和释放替换.它还使用Screamer开创的技术扩展来执行流向轻量级CPS转换,以支持极其高效的一流延续.最后,它支持流向内联和低级表示选择,以在每个抽象值和每个程序点的基础上选择标记的实现(或非实现),标记检查和标记分派.这消除了大多数运行时标记,标记检查,标记,标记剥离,标记调度,装箱和从程序中取消装箱.这些分析和优化允许斯大林生成极其高效的代码,其性能优于所有其他Scheme编译器,范围在2到100之间,特别是对于数字密集型代码.斯大林经常生成的代码优于手写的c和Fortran代码.

我能够找到以下关于闭包/函数调用实现的非常有趣的论文:Flow-Directed Lightweight Closure Conversion.我还通过电子邮件向作者询问了关于其他主题的论文,这些论文被提到将在封闭转换论文中写出:

Siskind,JM 2000a.流向轻量CPS转换.在筹备.

Siskind,JM 2000b.流向多变量.在筹备.

Siskind,JM 2000c.流向定向表示选择.在筹备.

Siskind,JM 2000d.流向存储管理.在筹备

不幸的是,他从来没有写过那些论文.我的问题是:是否有任何替代或相关的论文涉及这些主题?我非常有兴趣了解Stalin(或其他编译器)如何编译如垃圾收集,动态类型,支持第一类函数甚至是第一类延续的Scheme这样的高级语言,可以静态编译为如此高效的代码.

compiler-construction scheme computer-science compilation

21
推荐指数
1
解决办法
1435
查看次数

Dataflow编程和Reactive编程有什么区别?

我真的看不出它们之间的区别.它们都是关于流经指令的数据和输入数据中的变化传播.我读过这本书(由Matt Carcki撰写),它清楚地表明两者都是一样的.另一方面,维基百科建立了反应式编程作为数据流编程的一种形式,这种堆栈溢出的答案也是如此.

那么,Reactive编程和Dataflow编程之间的概念差异是什么?

paradigms computer-science glossary dataflow reactive-programming

21
推荐指数
1
解决办法
1467
查看次数

计算机科学与软件工程有什么区别?

我被一个关于软件工程视频的问题的答案提出了问题.这是答案:

顺便说一句,要小心你在这里链接.软件工程和计算机科学是非常不同的学科.软件工程包括软件开发生命周期(包括方法和过程),建模,通信,企业SE文化等,并且更少关注代码,算法,效率等.

JoshJordan于5月12日回答

这是我的评论:

我不得不有点不同意.软件工程是计算机科学的一门子学科.软件工程的一个子领域是构建,它是关于代码的.请参考SWEBOK.

我认为算法不属于软件工程,但面向对象编程,安全编程等都没有.

有人说这是重复的,但计算机工程是关于硬件和软件工程是关于软件.

computer-science

20
推荐指数
4
解决办法
4万
查看次数

是否有人知道"抽象层"/"间接层"引用出现在哪里?

引用如下:

计算机科学中没有任何问题无法通过向其添加另一层抽象来解决

(来自http://blogs.oracle.com/fcmartin/2009/01/pardon_my_dust.html的措辞复制)

有许多变化,但我一直无法找到原创者.因为我非常喜欢用舌头沾上这句话和相当多的真相,所以我很想知道是否有人知道这可能来自哪里.

quotes computer-science

20
推荐指数
2
解决办法
5714
查看次数

Automata理论死了吗?

我喜欢我在Automata Theory和Formal Languages学习的课程,所以很自然地,我开始环顾互联网,了解自从课程所依据的书籍编写以来所发生的事情.

我发现的是我不熟悉的东西清单似乎很短.例如,从维基百科条目中的自动机列表中,该课程涵盖了一半,而另一半主要与课程未涵盖的一种语言相关.

此外,在研究理论的应用时,我得到了大致相同的结果:编程语言语法,编译器,文本搜索,以及......就此而言.

它真的死了吗?还是继续发展?这个理论有新的应用吗?

computer-science automata

20
推荐指数
1
解决办法
4607
查看次数

数字比较比字符串比较快吗?

我听说哈希(即将字符串或对象转换为数字)用于字符串等,因为它比字符串更容易比较数字.如果是真的,这是什么原因?

c++ java computer-science

20
推荐指数
2
解决办法
1万
查看次数