我注意到C ++和Java在语法方面似乎有许多共同点,尽管我认为它们是完全不同的语言。例如,两种语言都支持转换并通过指定返回类型,然后指定函数名称来定义函数。 for
循环似乎也非常相似。而且,它们都使用花括号来表示各种语句和结构。
这是有原因的吗? Java和C ++是否有一些共同的前身?例如,一个的语法是否基于另一个?还是我对此读得太多?
答案 0 :(得分:1)
Java只是 C风格语言(即基于C语言的句法语言)家族的成员。该家族包括
之类的语言C ++,Java,JavaScript,PHP,Perl
在1990年代和2000年代初期非常受欢迎。
今天的
Python,Ruby,Rust,Kotlin,Swift等。
将焦点略微移开了C风格的语言。脱离C风格的原因之一是 C具有上下文相关的语法,而新语言倾向于具有几乎与上下文无关的语法,这使得其解析成为可能。更容易,更可预测。
答案 1 :(得分:0)
通过对同一操作使用不同的语法,任何设计新语言的人都将一无所获。因此,例如,如果该语言的潜在用户习惯于将“ a ++”用作变量“ a”,其值会递增,但会返回a的现有值,或者将他们用作括号来界定代码块,没有理由不使用一种新语言。如果这种新语言确实改变了这些东西,那么它们就有可能使人们感到困惑和劝阻,使他们无法使用它。
这不仅扩展到Java和C ++,而且还扩展到其他一些语言。例如,JavaScript和Perl使用与Java和C ++相同的许多语法功能。