标签: programming-languages

什么是'表达问题'?

我对这是什么有一个粗略的想法,但如果有人对"表达问题"的解释他们认为简洁直观我很乐意听到它.

computer-science programming-languages functional-programming

46
推荐指数
2
解决办法
5709
查看次数

"闭合"和"块"之间究竟有什么区别?

我发现很多人使用闭包互换的词.这些人中的大多数都无法解释他们在谈论什么.

一些Java程序员(甚至来自真正昂贵的咨询公司)将匿名内部类称为"块"和"闭包" - 但我知道这不是真的.(你不能从定义它们的方法范围中传递可变变量......)

我在找:

  • 块的精确计算机科学定义
  • 关闭的精确计算机科学定义
  • 澄清两者之间的区别.

我真的很想看到关于这些的链接,文章或书籍参考.

theory computer-science programming-languages language-theory

45
推荐指数
3
解决办法
9529
查看次数

Haskell是否适合作为第一语言?

我之前接触过命令式语言(C,一些Java),但我会说我没有编程经验.因此:将我视为非程序员,Haskell是否适合作为第一语言?

我对纯数学和CS的兴趣似乎与大多数Haskell教程的意图一致,尽管我可以从根本上认识到命令式编程的当前和未来行业价值,但我发现了函数式编程的潜力(尽管看起来像这样一个范式转变)令人着迷.

我想我的问题可以按如下方式提炼 - 非程序员是否必须理解命令式编程以欣赏和充分利用函数式编程?

一些参考:

haskell programming-languages

45
推荐指数
5
解决办法
8754
查看次数

.NET中类等级的加载器

有谁知道是否可以在.NET中定义"java自定义类加载器"的等价物?

给一点背景:

我正在开发一种针对CLR的新编程语言,称为"Liberty".该语言的一个特性是它能够定义"类型构造函数",它是编译器在编译时执行并生成类型作为输出的方法.它们是泛型的泛化(该语言确实具有普通泛型),并允许编写这样的代码(使用"Liberty"语法):

var t as tuple<i as int, j as int, k as int>;
t.i = 2;
t.j = 4;
t.k = 5;
Run Code Online (Sandbox Code Playgroud)

"tuple"的定义如下:

public type tuple(params variables as VariableDeclaration[]) as TypeDeclaration
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

在这个特定的例子中,类型构造函数tuple提供类似于VB和C#中的匿名类型.

但是,与匿名类型不同,"元组"具有名称,可以在公共方法签名中使用.

这意味着我需要一种方法,最终由编译器发出的类型可以跨多个程序集共享.例如,我想要

tuple<x as int>在程序集A中定义的最终类型与tuple<x as int>程序集B中定义的类型相同.

当然,问题是程序集A和程序集B将在不同的时间进行编译,这意味着它们最终都会发出自己不兼容的元组类型版本.

我考虑使用某种"类型擦除"来做这个,所以我会有一个像这样的一堆类型的共享库(这是"Liberty"语法):

class tuple<T>
{
    public Field1 as T;
}

class tuple<T, R>
{
    public Field2 as T;
    public Field2 as R;
}
Run Code Online (Sandbox Code Playgroud)

然后只重定向来自第i,j和k元组字段来访问Field1,Field2Field3.

然而,这不是一个真正可行的选择.这意味着,在编译时 …

.net compiler-construction clr language-features programming-languages

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

为什么解释的langs在编译时大部分都是鸭子型的?

我只是不知道,有什么技术原因吗?为弱键入的语言实现编译器是否更难?它是什么?

compiler-construction programming-languages interpreted-language

44
推荐指数
5
解决办法
6977
查看次数

有人会推荐学习J/K/APL吗?

几个月前我遇到了J/K/APL,同时解决了一些项目的问题,并且至少可以说是好奇.对于我制作的每一个看起来优雅的20行蟒蛇解决方案,都会有十分之一的gobsmacking 20 字符 J解决方案.我一直热衷于学习一些基本的J,并且已经做了一些尝试来学习词汇,但是发现学习曲线非常陡峭.

对于那些熟悉这些语言的人,你会建议花一些时间学习一门(我特别想到J)吗?为了满足我的好奇心而不是为了职业发展或某些这样的事情,我会这么做.

如果您愿意,可以考虑一些个人情况:

  • 我喜欢数学,每天都在我的工作中使用它(作为初创公司的数学家)但说实话我并不觉得我使用的工具(比如python + NumPy)感觉有限,所以我不能用这个借口.
  • 我并不特别渴望在金融行业工作,这似乎至少是K用户的主要呼叫港口.另外,我应该将C#作为下一种语言学习,因为它是我工作的主要语言.实际上,J几乎绝对不应该是我学习的下一种语言.
  • 我对MATLAB相当熟悉,因此使用基于数组的编程语言不会构成巨大的范式转换.

熟悉这些语言的人的任何建议都将非常感激.

programming-languages j apl k

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

你曾经使用过的最糟糕的编程语言是什么?

如果你有一个有趣的故事要分享,请发一个答案,但不要滥用这个问题来抨击一种语言.


我们是程序员,我们的主要工具是我们使用的编程语言.

虽然有很多关于最佳编程的讨论,但我想听听你曾经使用过的最糟糕的编程语言的故事,我想知道你到底是什么烦恼.

我想收集这些故事,部分是为了避免在设计语言(特别是DSL)时遇到常见的陷阱,部分是为了避免未来的奇怪语言.


这个问题不是主观的.如果一种语言只支持单个字符标识符(请参阅我自己的答案),那么这是一个不容争议的方式.


编辑

有些人担心这个问题会吸引巨魔.趟过你所有的答案都有一点清楚.绝大多数答案都是恰当,有用且写得很好的.

更新2009-07-01 19:15 GMT

语言概述现已完成,涵盖102个答案中的103种不同语言.我决定对什么算作编程语言松懈,包括任何合理的东西.感谢大卫对此的评论.

以下是目前为止涵盖的所有编程语言(字母顺序,与答案相关联,新条目以粗体显示):

ABAP, 所有20世纪语言, 所有拖放语言, 所有专有语言, APF, APL (1), AS400, Authorware, Autohotkey, BancaStar, BASIC, Bourne Shell, Brainfuck, C++, Centura Team Developer, Cobol (1), Cold Fusion, Coldfusion, CRM114, Crystal语法, CSS, Dataflex 2.3, DB/c …

programming-languages

44
推荐指数
58
解决办法
14万
查看次数

有没有人使用Scheme编程语言谋生?

我开始学习方案乐趣,如果有人使用它为生活作为主要编程语言...甚至作为一个额外的工具,编程库不知道?如果是这样,你用它做什么?你通常用什么样的问题来解决它?

scheme programming-languages

44
推荐指数
5
解决办法
3万
查看次数

所有迭代算法都可以递归表达吗?

如果没有,是否有一个好的计数器示例显示迭代算法,其中不存在递归对应物?

如果所有迭代算法都可以递归表达,那么在哪些情况下更难以做到这一点?

此外,编程语言在这一切中扮演什么角色?我可以想象,Scheme程序员对Java迭代(=尾递归)和堆栈使用的看法与Java专用程序员不同.

iteration recursion programming-languages language-theory

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

什么是"总和产品"数据结构?

对威廉库克Fusings最近的一篇博客中提到:

关键点在于Ensō中的结构被整体地视为图形,而不是单个值或传统的和产品数据结构.

他所指的传统的产品和产品数据结构是什么?

types type-systems programming-languages algebraic-data-types data-structures

44
推荐指数
3
解决办法
6274
查看次数