标签: programming-languages

自举的缺点?

我已经看到很多关于bootstrapping的链接,我想知道使用C编程而不是使用汇编语言来引导X语言编译器的主要缺点是什么?我想知道是否使用C会限制我做的任何事情,就像汇编语言创建一样'C'(即C的编译器如何做).

例如,我在Python中编写的任何东西最终都会被CPython照顾,最终在硬件中以类似C的方式进行 - 这可能不是最佳的?

当然C可能是非常好的语言,但对于其他一般语言,可能不是这样.引导最终是否会产生一些瓶颈,特定于我用于制作引导编译器的语言的限制?像机器代码生成就像C生成代码而不是一些随机方式.

使用C的主要原因是它能很好地将我们的代码映射到机器语言,但它不如汇编那么好吗?所以C有一些性能问题,现在我用C来创建另一种语言的编译器,所以我必须传递那些性能问题吗?毕竟C没有做1-1映射到汇编 - 希望你得到我的问题.

compiler-construction programming-languages

4
推荐指数
1
解决办法
765
查看次数

我如何以编程方式将俄语音译成英语?

如何以编程方式用c#音译俄语短语?例如:" Мненакризиснаплевать,вылезвтопегоубухать?"

c# translation programming-languages

4
推荐指数
1
解决办法
2295
查看次数

无语法编程语言

这可能是一个非常奇怪的问题,它肯定是.我不太熟悉编程语言是如何用传统方法制作的,所以我想知道,是否可以设计无语法编程语言?这意味着任何输入都是有效的并执行某个计算,并且相同的输入将始终执行相同的操作.将不会出现语法错误(允许逻辑和运行时错误,程序可能崩溃,进行随机计算等).

我想到了这一点,因为遗传学基本上是我的理解,就像那样.

编辑:我认为存在一些误解.无语法只是意味着所有输入都将计算,解释器/编译程序将遵循该特定指令集,但可能是随机的.

此外,它必须匹配每个输入都有1个且只有1个输出的事实.诸如语法错误之类的内容违反了该规则.

编辑2很多人都在使用语法部分.忘记语法,关注任何输入将产生UNIQUE输出的事实.

theory computer-science programming-languages genetics

4
推荐指数
1
解决办法
342
查看次数

它被认为是一个糟糕的实践使用返回结束功能?

我是一名PHP和ActionScript开发人员,在我的一些函数中,我用return它来结束它.例:

private function lolsome(a:String):void
{
   if(a == "abs"){return void;}

   // function's code      
}
Run Code Online (Sandbox Code Playgroud)

我可以将函数的代码放入其中else,但我更喜欢这种方式,因为在我看来,这更加清晰.我只是想知道这是否被认为是一种不好的做法或类似的事情.

谢谢!

programming-languages

4
推荐指数
1
解决办法
307
查看次数

Haskell - 函数式编程工艺(练习4.3)

我有以下问题(Haskell - 函数式编程工艺):

给出函数的定义

howManyEqua1 :: Int -> Int -> Int -> Int
Run Code Online (Sandbox Code Playgroud)

它返回三个参数中有多少相等,所以

howManyEqua1 :: 34 25 36 = 0
howManyEqual :: 34 25 34 = 2
howManyEqual :: 34 34 34 = 3
Run Code Online (Sandbox Code Playgroud)

我给出的答案是:

howManyEqual :: Int -> Int -> Int -> Int
howManyEqual    a      b      c
    | a == b && b == c            = 3
    | a == b                      = 2
    | b == c                      = 2
    | a == c                      = 2
    | otherwise                   = …
Run Code Online (Sandbox Code Playgroud)

haskell programming-languages equals guard

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

可以强制开发人员处理特定的异常吗?

从本质上讲,我想要一个特殊形式的Interface异常,需要任何使用我的对象的人用特定的catch实现来包装它.

我有一个将数据发送到另一个主机的对象.我希望现实的实现需要一种方法来处理以下异常:

  • HostNotFoundException
  • InvalidUsernameException
  • AccountExpiredException
  • DataAlreadyExistsException

类似于如何使用一个Interface或一个Abstract类来强制在派生类中创建方法和属性,有什么方法可以强制消费者以我期望的方式实现异常处理?

在类似的说明中,我还想强制方法(通过Interface或Abstract创建)能够生成某些异常.当然它们可能未实现,但我想告诉那个开发人员(谁没有阅读文档)应该考虑他们.

目标

此异常检查的好处是可以实现更强大的错误处理.这将由消费者使用对象和对象创建者来完成.

解?

我能想到的唯一方法是T4模板,但这并不像我想的那样完整.我很乐意看到这种语言本身实现了.

.net c# programming-languages interface exception

4
推荐指数
1
解决办法
2361
查看次数

4
推荐指数
1
解决办法
600
查看次数

使用<?有什么区别?在Java泛型中扩展SomeAbstract>与SomeAbstract

我正在从DotNet转向java,这种扩展的想法是新的.

我已经看到一些帖子完全解释了使用List<? extends SomeAbstract>vs. List<? super SomeAbstract>vs. List<SomeAbstract>,但我猜测在泛型中使用和不使用扩展之间没有区别.

真的吗?如果使用抽象类作为父级,答案会改变吗?

class My_AbstractExtends<T extends SomeAbstract>
Run Code Online (Sandbox Code Playgroud)

class My_Abstract<SomeAbstract>
Run Code Online (Sandbox Code Playgroud)

编辑

按如下方式创建子类

class My_ChildExtends extends My_AbstractExtends<ConcreteChildOfSomeAbstract>
Run Code Online (Sandbox Code Playgroud)

class My_Child extends My_Abstract<ConcreteChildOfSomeAbstract>
Run Code Online (Sandbox Code Playgroud)

java generics extends programming-languages abstract

4
推荐指数
1
解决办法
580
查看次数

除以零:无限,NaN或零分割误差?

为什么不是1/0 == Inf每种语言?这不是数学上最正确的反应吗?

我熟悉的所有语言都能够表达无限和NaN值,那么为什么他们会选择抛出错误或返回NaN呢?是否只是让科学应用程序开发人员的生活变得更难?;-)

更新:我们应该关闭这个问题,因为我错误地认为1f/0f == Float.NaN在Java中.但我错了:它确实正确回归Float.Infinity.这是我的主要困惑; 只要没有语言返回NaN,一些语言抛出错误的事实是可以理解的.

math programming-languages divide-by-zero

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

什么是PHP函数命名和参数顺序逻辑/约定?

是否在PHP中随机命名了函数及其参数?我发现很难记住哪个功能是如何,并且总是发现自己参考手册.你怎么做才能记住它们而不必每次都参考手册?

几个例子:
array_map(callback, array)但是array_filter(array, callback).当处理字符串时strstr(),strpos()substr()没有下划线,但是str_replace(),str_pad()str_split()不会.在大多数情况下,字符串被接受为第一个参数,但在explode()字符串中是第二个参数.

php programming-languages

4
推荐指数
1
解决办法
436
查看次数