我听说Liskov替换原则(LSP)是面向对象设计的基本原则.它是什么以及它的使用例子是什么?
oop liskov-substitution-principle definition design-principles solid-principles
我一直听到这个词在几个不同的背景下被抛出.它是什么?
今天在办公室提出了这个问题.我没有计划做这样的事情,但理论上你可以在SQL中编写一个编译器吗?乍一看,在我看来,虽然对于许多类型的问题非常麻烦,但我觉得它是完整的.
如果它没有完成,那么它需要什么呢?
注意:我不想做任何事情,比如在SQL中编写编译器,我知道这样做会很愚蠢,所以如果我们能够避免讨论,我会很感激.
我最近在阅读关于人工生命的文章,并且发表了声明,"康威的生命游戏展示了足够的复杂性,被归类为通用机器." 我只是粗略地了解通用机器是什么,维基百科只让我接近理解,就像维基百科一样.我想知道是否有人可以对这个非常性感的陈述有所了解?
对我而言,康威的"生命游戏"似乎是一种可爱的分心,带来了一些巨大的影响:我无法在那和计算器之间实现飞跃?这甚至是我应该做的飞跃吗?
我读过"什么是图灵完整"和维基百科页面,但我对正式证据不太感兴趣,而不是图灵完全的实际意义.
我实际上要确定的是,我刚刚设计的玩具语言是否可以用作通用语言.我知道我可以证明我是否可以用它来编写图灵机.但是,在我确信成功之前,我不想进行这项运动.
有没有最低限度的功能,没有图灵完整性是不可能的?是否有一系列功能几乎可以保证完整性?
(我的猜测是条件分支和可读/可写的内存存储将使我的大部分方式)
编辑:
我想我已经说过"图灵完成"了.我试图以合理的信心猜测具有特定功能集的新发明的语言(或者具有特定指令集的VM)将能够计算任何值得计算的东西.我知道证明你可以用它建立图灵机是一种方式,但不是唯一的方法.
我所期待的是一套类似的准则:"如果可以做X,Y和Z,它可以或许做任何事情".
我正在研究汇编编程,所以我决定尝试用软件实现一个"虚拟微处理器",它有寄存器,标志和RAM来处理,用变量和数组实现.但是,由于我只想模拟任何微处理器的最基本行为,我想创建一个只有基本指令的汇编语言,只有那些没有它就没用的指令.我的意思是,有汇编语言可以执行乘法和交换寄存器值等,但这些操作不是基本的,因为您可以使用更简单的指令来实现它们.我不想实现那些指令.
我可以想象一些指令(我相信)必须始终以任何汇编语言存在,例如MOV移动字节和JP将指令指针发送到另一个地址.
你能否提出一套最基本和最基本的装配说明?谢谢!
Scala和Haskell拥有"图灵完整型系统".通常,图灵完整性是指计算和语言.它在类型的背景下真正意味着什么?
有人可以举一个程序员如何从中受益的例子吗?
PS我不想比较Haskell和Scala的类型系统.一般来说,这更多的是关于这个术语.
PSS如果有可能更多的Scala示例.
看完这个问题后,CSS图灵完成了吗?- 它收到了一些深思熟虑的简洁答案 - 它让我想知道:HTML图灵是否完整?
虽然简短的答案是肯定的肯定或否定,但也请提供一个简短的描述或反例来证明HTML是否是图灵完全(显然不能同时).关于其他版本的HTML的信息可能很有趣,但正确的答案应该回答HTML5.
assembly ×1
declarative ×1
definition ×1
glossary ×1
haskell ×1
html ×1
html5 ×1
liskov-substitution-principle ×1
oop ×1
paradigms ×1
perl ×1
regex ×1
scala ×1
sql ×1
t-sql ×1
terminology ×1
theory ×1