标签: programming-languages

学习许多不同的编程语言是坏的吗?

如果有人要求你制作关于某事的节目,你能用你知道的任何语言进行,而不需要参考吗?

你能记住所有的语言功能,因为有些功能在其他语言中是不可能的吗?例如,C++可以继承两个类,而在Java中你不能(你可以接口).如果它不是一个静态const ...你也可以在C++中初始化一个实例变量.

我问这个是因为在我可以用Visual Basic编程之前,但现在我正在研究Java,事情发生了变化 - 就像实例化对象的语法一样简单,我感到困惑.我需要看看Visual Basic引用才能做到这一点.

学习许多不同的编程语言是坏的吗?因为我觉得我浪费时间学习Visual Basic.

programming-languages

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

关于表达和陈述的语言概念

任何计算机语言都有'表达'和'陈述'.在概念上,差异是什么?

programming-languages

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

如何制作"功能字典"?

我有很多函数,如果我有一个数组,[echo, "Bob is Good"]我想用整个数组的参数运行echo函数.因此,它需要arr[0]并使用整个数组的参数运行该函数.现在我只有if语句,例如:

...
elif arr[0] == 'echo':
    echo(arr)
elif arr[0] == 'var':
    var(arr)
Run Code Online (Sandbox Code Playgroud)

此外,最好,现在我的功能设置为前缀cmd.例如,echo函数将被称为echocmd,因此如果有一种方法可以实现,那么它也会很棒!

python syntax programming-languages

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

命令行/脚本/解释环境中的C#或Java?

因此,在unix环境中的Python中,我们可以从终端打开python,开始编写代码并立即运行它来测试一些python库函数.是否有类似的C#或Java命令行/脚本环境(可能是IDE的插件?)?这样的工具对于试验像System库这样的东西似乎非常有用.

相关地,我读到某些版本的Python在被虚拟环境执行之前被编译成字节码,这听起来像Java和C#.但是,我在终端中打开并开始输入代码的Python程序必须被解释,对吧?所以基于原理,似乎可以编写C#或Java解释器.所以我不确定为什么我没有看到任何人在命令行上与C#或Java交互,就像他们使用Python一样.

谢谢.

.net c# scripting programming-languages

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

为什么编程语言需要这种方式来声明变量?

我正在学习C,而且我知道如何在Mathematica上编程.

在Mathematica上,我可以简单地通过编写来声明变量:

a=9
a="b"
a=9.5
Run Code Online (Sandbox Code Playgroud)

似乎Mathematica通过简单地阅读并在其上找到某种模式,自然地了解这是什么类型的变量.(Int,char,float).我猜Python有相同的功能.

在C语言中,我必须先说出它是什么:

int num;
char ch;
float f;

num=9;
ch='b';
f=9.5;
Run Code Online (Sandbox Code Playgroud)

我知道这延伸到其他languanges.所以我的问题是:为什么编程语言需要这种变量声明?

关于该主题的参考将非常有用.

language-agnostic variables types programming-languages

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

可以用相同的语言L实现语言L的编译器吗?

我知道编译器使用相同语言实现的许多语言: - C#Roslyn编译器在C#中实现 - F#编译器在F#中实现

现在,我认为可以在C#5.0中实现C#6.0的编译器

然后我的问题是关于该语言的相同版本,即:

can a compiler of a language L be implemented in the same language L ? 
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我听说打字稿编译器是在typescript中实现的,但是没有以前版本的typescript语言.

提前致谢.

compiler-construction programming-languages compilation

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

哪种基于JVM的脚本语言使用"when"作为分支控制关键字(而不是"if")?

我看到一个带有代码片段的演示文稿,其中包含"when"而不是"if".代码看起来像基于JVM的脚本语言,使用缩进而不是"{}"而不是每行都用';'完成

你能给我一个线索,它可能是哪种语言?

programming-languages jvm-languages indentation

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

编程语言在其语法中不允许的东西

有些东西我从未在任何编程语言中看到,我会知道为什么.我相信这些东西可能有用.如果你指出,也许解释会很明显.但是我们走了.

为什么不是10²,在语法上有效?有时,我们希望通过使用这样的符号来表达(就像在论文中一样)而不是预先计算的值(有时,这是一个很大的数字,并且,当第一次看到时会使一些困难,我相信它的目的是_在D和Java编程语言中)或仍然为此调用数学函数.当然,我说编译器将此变量的值替换为计算值,不要在运行时将其保留.

-在indentifier.为什么 - 对我int name-size = 14;不喜欢_?(只是lisp方言),并不意味着难以理解.或者这个"限制"属于计算机的字符集?

当有人回答我的问题时,我会很高兴.此外,如果您有另一个要求的指针,只需编辑我的答案并在其版本上发布注释或发布为评论.

programming-languages compiler-theory

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

为什么算术表达式没有在C#中乘以0进行优化

为了评估乘法,你必须评估第一个术语,然后是第二个术语,最后将两个值相乘.

假设每个乘以0的数字为0,如果第一项的评估返回0,我将期望在不评估第二项的情况下将整个乘法计算为0.

但是,如果您尝试此代码:

var x = 0 * ComplexOperation();
Run Code Online (Sandbox Code Playgroud)

尽管我们知道x是0,但函数ComplexOperation被调用.

优化的行为也与布尔运算符'&&'一致,仅当第一项被评估为真时才计算第二项.('&'运算符在任何情况下都会评估这两个术语)

我测试了这种行为,C#但我猜几乎所有语言都是一样的.

c# expression programming-languages compiler-optimization

1
推荐指数
2
解决办法
228
查看次数

我的Lambda微积分语法是否明确无误?

我正在尝试为处理lambda演算的语言编写一个小编译器.以下是我发现的语言含糊不清的定义:

E ? ^ v . E  | E E | ( E ) | v
Run Code Online (Sandbox Code Playgroud)

符号^,.,(,)和v是标记.^表示lambda,v表示变量.形式^ vE的表达式是函数定义,其中v是函数的形式参数,E是其主体.如果f和g是lambda表达式,则lambda表达式fg表示函数f应用于参数g.

在假设函数应用程序是左关联的情况下,我试图为这种语言编写一个明确的语法,例如fgh =(fg)h,并且该函数应用程序比...更严格地绑定,例如(^ x.^ y. xy)^ zz =(^ x.(^ y.xy))^ zz

这是我到目前为止所做的,但我不确定它是否正确:

E -> ^v.E | T
T -> vF | (E) E
F -> v | epsilon
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

lambda grammar parsing programming-languages lambda-calculus

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