Tag: 编程语言

他们用什么语言建立其他语言?

用什么语言来构建像c ++和java这样的低级语言? 你怎么能建立没有语言的第一语言?

为什么Java main()方法接受String args数组?

既然它可能是Java语言中使用最广泛的方法之一,为什么它必须接受一个字符串数组而没有它呢? 例如,我总是可以忍受: public static void main() {} 过度 public static void main(String[] args) {} 是否有更高的目的,只是能够接受命令行参数,特别是因为绝大多数Java程序是GUI驱动的,不需要通过命令行接收args?

支持goto的Java编译器或JVM语言?

是否有一个java编译器标志允许我使用goto作为有效的构造? 如果没有,是否有支持goto的第三方java编译器? 如果没有,是否有任何其他支持goto语言,同时可以轻松调用用Java编写的方法? 原因是我正在制作一种用Java实现的语言。 Gotos是我语言的重要组成部分; 我希望能够将其编译为本机或JVM字节码,尽管它必须能够轻松使用Java库(即.C支持goto ,但要使用它我必须在C中重写库)。 我想生成C或Java等源文件,而不是字节码或机器代码。 我正在使用第三方编译器来做到这一点。

Java如何选择要调用的重载函数?

这是一个纯粹的理论问题。 给出三个简单的类: class Base { } class Sub extends Base { } class SubSub extends Sub { } 并且函数意味着对这些类进行操作: public static void doSomething(Base b) { System.out.println(“BASE CALLED”); } public static void doSomething(Sub b) { System.out.println(“SUB CALLED”); } 似乎是以下代码: SubSub ss = new SubSub(); doSomething(ss); 可以合法地导致打印BASE CALLED或SUB CALLED,因为SubSub可以同时打印到这两个。 实际上,删除函数的Sub版本会导致打印BASE CALLED。 实际发生的是打印“SUB CALLED”。 这似乎意味着调用哪个函数不依赖于定义函数的顺序,因为首先调用Base版本。 Java只是查看函数的所有不同版本并选择需要最小遍历inheritance堆栈的函数吗? 这标准化了吗? 它是在任何文档中写出来的吗?

为什么Haskell可以轻松处理非常大的数字?

Hugs> 94535^445 为什么Haskell可以计算如此大的数字,而其他语言(如Java)不能(如此容易)?

重新学习语言的最佳方法是什么?

我曾经是大学里的一个Java书呆子,但从那时起我就没有碰过它。 我在过去3 – 4年的工作主要是使用Python和C ++,而且我已经忘记了很多Java和Java。 那么,用语言回到最佳状态的最佳(也是最快)方法是什么? 有关小项目的任何建议,使您使用(并因此重新学习)您已经知道的旧语言? 一个相关的问题是,你们如何与你学到但却没有机会长期使用的技术保持联系?

Scala替换Arrays.binarySearch?

Scala中是否有替换Java的int Arrays.binarySearch(Object[] array, object) ? 问题是Scala的数组不是协变的,所以我必须先将我的stringArray: Array[String] : stringArray.asInstanceOf[Array[Object]] 有更好的解决方案吗?

Java独立代码块

我已经使用Java很长一段时间了,但从未遇到类似这样的事情。 我想知道它的作用以及为什么它不是错误。 public class Foo{ private int someVariable; { doSomething(); } public Foo(){ } private void doSomething(){ // Something is done here } } 我想知道单个块的目的是什么,其中包含对“doSomething()”的调用。 它只是一个骨架代码。 我遇到的实际代码是http://www.peterfranza.com/2010/07/15/gwt-scrollpanel-for-touch-screens/

Smalltalk相当于Java的静态是什么?

什么是Java的静态字段和方法的Smalltalk等价物? IOW,Smalltalkers在需要类级数据和/或方法时会做些什么?

删除代码重复

我正在尝试为Java创建一个小函数式编程库(只是为了抓住我自己的痒)。 在定义List s, Set s和Map s 的高阶函数时 ,我遇到了这个问题:采用集合并返回相同类型集合的函数具有几乎相同的实现,但必须重新定义每个数据结构 – List s, Set s和Map s。 例如,这里是List s和Set s的map函数的实现: public static List map( List xs, Func1 transformer ) { List ys = new ArrayList(); for(A a : xs) { ys.add(transformer.apply(a)); } return ys; } public static Set map( Set xs, Func1 transformer ) { Set ys = […]