标签: programming-languages

如何转换实现java.lang.Comparable的类来实现Scala.Ordered?

被重命名extends Comparable[A],以extends Ordered[A]和重命名def compareTo,以def compare足够的或者是有什么我应该照顾?

java comparison interop programming-languages scala

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

以不同的编程语言重载

有人可以解释(例子)上下文无关和上下文相关的重载之间的区别吗?

programming-languages overloading

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

我正在读/写文件时发生了什么(在操作系统级别)?

假设一个程序正在读取文件F.txt,另一个程序正在同时写入该文件.

(当我考虑如果我是系统程序员时如何实现此功能)我意识到可能存在歧义:

  1. 第一个项目会看到什么?

  2. 第二个程序在哪里写新字节?(即写入"就地"vs写入新文件,然后用新文件替换旧文件)

  3. 有多少程序可以同时写入同一个文件?

    ..也许是不那么明显的事情.

所以,我的问题是:

  1. 读/写文件功能的主要策略是什么?

  2. 哪些操作系统(Windows,Linux,Mac OS等)支持哪些?

  3. 它可以依赖于某种编程语言吗?(我可以假设Java可以尝试在所有支持的操作系统上提供一些统一的行为)

java filesystems operating-system programming-languages file

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

C++"OR"运算符

这可以以某种方式完成吗?

if((a || b) == 0) return 1;
return 0;
Run Code Online (Sandbox Code Playgroud)

所以就像...如果一个OR b等于零,那么...但它对我不起作用.我的真实代码是:

bool Circle2::contains(Line2 l) {
    if((p1.distanceFrom(l.p1) || p1.distanceFrom(l.p2)) <= r) {
        return 1;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ programming-languages codeblocks

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

如何让语言同时提供按名称调用和按值调用?

是否可以使用语言提供按需调用(CBN)和按值调用(CBV)评估策略?我的意思是不修复它并在另一个模拟,但让用户在需要时选择哪个.例如,让语言具有evalScheme中可用的功能,该功能可以接受来自用户的另一个参数,指定他想要的评估策略.

programming-languages

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

C语言语义规范

Wikipidea说,Perl有一个显性实现,可用作其规范的参考,而C语言则由标准ANSI ISO指定.

我学会了C语言而没有阅读单行标准,这是正常的吗?

我想知道标准(即自然语言文档)如何能够描述编程语言而不涉及任何主导实现.

language-agnostic programming-languages language-specifications

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

log(n)来自O(N)表示法

我知道什么是O(n)符号,我也理解如何得到O(n),O(n 2)等符号....

  • O(n)意味着我必须完成一次序列
  • O(n 2)表示我有两个嵌套循环遍历序列

但是我如何得到log(N)?

PS:我知道Collections API和一些具有O(n log n)遍历时间的类.我需要一个简单的解释.

algorithm big-o programming-languages

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

最适合计算和内存昂贵算法的语言

假设您必须实现一个有效解决NP难问题的工具,不可避免的内存使用量爆炸(输出大小在某些情况下指数输入大小)并且您特别关注此工具在运行时的性能时间.一旦知道了基础理论,源代码也必须是可读和可理解的,并且这个要求与工具本身的效率同样重要.

我个人认为3种语言可能适合这三个要求:c ++,scala,java.它们都提供了对数据类型的正确抽象,使得可以比较不同的结构或将相同的算法(这也很重要)应用于不同的数据类型.

C++具有静态编译和优化的优点,并且通过函数内联(如果数据结构和算法经过精心设计)和其他优化技术,可以在保持相当好的可读性的同时实现接近纯C的性能.如果您在数据表示中也非常谨慎,则可以优化缓存性能,当缓存未命中率较低时,缓存性能可以获得数量级的速度.

Java是JIT编译的,它允许在运行时应用优化,并且在这类算法中可能在不同的运行之间具有不同的行为,这可能是一个加号.我担心这样的方法可能会受到垃圾收集器的影响,但是在这种算法的情况下,通常连续分配内存并且Java堆性能比C/C++好得多,如果你在语言中实现自己的内存管理器,你可以甚至达到很好的效率.相反,这种方法无法内联方法调用(这会导致巨大的性能损失)并且无法控制缓存性能.在专业人士中,语法比C++更好,更清晰.

我对scala的担忧与Java大致相同,而且我无法控制语言的优化程度,除非我对编译器和标准库有深入的了解.但是好吧:我得到一个非常干净的语法:)

你对这个问题有什么看法?你有没有必须处理这个?您是否会使用这些语言中的任何一种语言实现具有此类属性和要求的算法,或者您会建议其他什么?你会如何比较它们?

algorithm programming-languages np data-structures

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

将if/else放在另一个其他地方是不好的做法?

if() {

}else {
    if (IsAlternateRow=='true')
        IsAlternateRow = 'false';
    else
        IsAlternateRow = 'true';
}
Run Code Online (Sandbox Code Playgroud)

我可以将if和else语句放在另一个else语句中吗?

javascript programming-languages

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

为什么在编程时需要指针?

在用任何语言编写代码时使用指针是否重要,例如C语言是否会占用更多内存.

感谢你

programming-languages

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