理论上,是否可以使用详细的“HTML样式”标记来表示Java编程语言的语法,然后将其转换为普通的Java代码?我认为这种类型的修改语法可能有助于代码的可读性,可能是以简洁为代价。
使用普通Java语法的两个类组成的示例程序:
public class HelloWorld{
public void doStuff(){
System.out.println("Hello World!");
}
}
public class MainClass{
public static void main(String[] args){
HelloWorld.doStuff();
}
}
相同的程序,提出了“HTML样式”标记(将被翻译成普通的Java语法):
<class = "public class HelloWorld">
<function = "public void doStuff()">
System.out.println("Hello World!");
</function>
</class>
<class = "public class MainClass">
<function = "public static void main(String[] args)">
HelloWorld.doStuff();
</function>
</class>
答案 0 :(得分:3)
Coldfusion是一种具有HTML或XML样式语法的语言,用于构建Web应用程序。
我认为他们认为HTML程序员会很熟悉(事实上,我认为它的一些标签是HTML标签,但我不是CF专家)。
我见过的那个小小的,并没有让我想要在未来以这种方式编码。
答案 1 :(得分:1)
我认为你正在寻找类似JHTML的东西:
从此链接http://docs.oracle.com/cd/E13222_01/wls/docs45/classdocs/API_jhtml.html我可以引用:
您可以在JHTML文件中的标记之间声明类范围对象,例如变量,方法和内部类。您可以在JHTML中使用任意数量的此类java标记,但出于可维护性原因,我们建议您在JHTML的开头将相关变量组合在一起。在下面的示例中,我们设置了一些HTTP servlet类使用的变量。我们从上面的标记中取出了这些标记,以便可以从其他方法访问它们,并且它们不会在每次调用时实例化。新的变量声明现在看起来像这样:
<html>
<java type=class>
String jdbcClass = "weblogic.jdbc.oci.Driver";
String jdbcURL = "jdbc:weblogic:oracle:goldengate";
String user = "scott";
String password = "";
</java>
</html>
在大多数情况下,由于servlet线程问题,最好使用方法范围的变量。这意味着要么在其他方法中声明变量,要么直接在服务方法的主体中声明(即,只在普通标记内)。有关线程和servlet的更多详细信息,请参阅servlet开发人员指南中的HTTP servlet中的线程问题。
他的示例说明了如何在JHTML文件中定义从主块调用的类方法。
short方法getCon()初始化servlet中其他地方使用的JDBC Connection对象。请注意,我们将方法的工作包装在try块中,因此失败不会破坏servlet。
<java type=class>
static final String jdbcClass =
"weblogic.jdbc.oci.Driver";
static final String jdbcURL =
"jdbc:weblogic:oracle:goldengate";
static final String user = "scott";
static final String password = "tiger";
protected Connection getCon() {
Connection conn = null;
try {
Class.forName(jdbcClass).newInstance();
conn = DriverManager.getConnection(jdbcURL,
user, password);
}
catch (Exception f) {
}
return conn;
}
</java>
您可以从JHTML中的任何其他Java代码调用此方法。请注意,此块中声明的其他变量属于类范围,因此也可以从JHTML中的任何块引用它们。
答案 2 :(得分:1)
是的,这是可能的,但不是 - 这将是非常可怕的。
像这样的语言的另一个例子是蚂蚁。
答案 3 :(得分:1)
是的,这当然是可能的。任何可以使用BNF语法描述的语言都可以使用XML标记来表达,并且使用HTML标记进行更多的扭曲(在HTML中更难以使用,因为你有一个固定的词汇表,但你可以使用{{1而不是<div class="X">
)。
执行此操作的示例是语言对XQuery / XQueryX,其中XQueryX是XQuery语言的XML表示。
它是否有用是另一个问题。使用基于XML的语法为XSLT这样的语言带来好处,其中输入和输出都是XML,但是需要付出代价。