使用HTML样式语法编程语言

时间:2013-01-14 05:27:17

标签: java html xml

理论上,是否可以使用详细的“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>

4 个答案:

答案 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,但是需要付出代价。