導航:首頁 > 源碼編譯 > 自定義編譯語言java

自定義編譯語言java

發布時間:2022-06-16 11:23:06

Ⅰ 請問在java中調用一個自定義方法,在調用之後才定義,不用先對方法聲明嗎

JAVA是預編譯語言,比如一個函數A,在調用的時候要用到函數B。但是在寫代碼的時候B函數是按照順序寫在A函數後面的,在JAVA中,可以正常使用函數A。
但是在C語言中,一定要在代碼開頭聲明函數B,再可以在A的後面實現函數B。
否則C語言中若不提前聲明函數B,則函數B只能先在A函數之前實現好,再讓A函數去調用B。

Ⅱ 能不能把java搞成編譯型語言 有沒有人設計一種編譯器直接把java源碼編譯為機器指令

1. java已經是編譯型語言,因為不編譯源程序是沒法直接運行的。只不過java是編譯成中間的二進制代碼,不是最終的機器代碼。

2.已經有這種編譯器,免費的如gnu的gcj,收費的如Excelsior JET。不過沒有太大必要使用,java在運行時也會把中間代碼動態優化成本地機器代碼,這種優化的結果一般會優於預先編譯的結果,因為動態優化可以因地制宜,根據程序運行情況和計算機硬體的狀況來動態選擇優化策略。

Ⅲ 高分求助:Java自定義腳本語言解釋器的設計實現思路

這個你有編譯原理基礎的話,就在找本編譯原理的書看,會想起來怎麼做的。這個解析過程並不太難。

如果你沒學過編譯原理,那就別看了,短時間內掌握不了的。可以參考這個思路:
建立一個替換表:
{」如果「 : "if", "並且" : "&&", "則" : "{", "如果結束" : "}"},可能還有很多別的什麼的吧
然後對程序進行替換
替換後為:
C = A + B
if(C > 0 && A > 5){
D=100
if(C > 5 && B > 10){
D=200
}
}
然後進行一些語法補全的操作什麼的,爭取轉換為javascript之類的腳本語言。這樣就能執行了

對於變數那個判斷,可以對於變數進行遍歷,查找全部賦值操作左邊的變數,就是被賦值變數了,其他的就是可變的

Ⅳ 如何實現自定義Java編譯時註解功能

自定義註解,可以應用到反射中,比如自己寫個小框架。
如實現實體類某些屬性不自動賦值,或者驗證某個對象屬性完整性等
本人自己用過的驗證屬性值完整性:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreProperty {
}
然後實體類中:
public class TarResearch implements Serializable{

@IgnoreProperty
private static final long serialVersionUID = 1L;

@IgnoreProperty
private Integer researchId;

@IgnoreProperty
private TarUser userId;

private String version;

private String grade;
....
}

然後action類中
// 驗證數據完整性

Class<TarResearch > userClass = TarResearch .class;

Field[] field = userClass.getDeclaredFields();

for (int i = 0; i < field.length; i++) {

if (field[i].getAnnotation(IgnoreProperty.class) != null) {

continue;

}

String fie = field[i].getName().substring(0, 1).toUpperCase()

+ field[i].getName().substring(1);

Method method = userClass.getMethod("get" + fie);

Object obj = method.invoke(u);

if (obj == null) {

sendResponseMsg(response, "數據錯誤");

return null;

}

}

Ⅳ 如何自定義一種java語法並能正確編譯和運行

那這樣的語言就不叫Java了,叫你自創的語言。你需要自己實現這種語言的編譯器。

Ⅵ java工作原理

Java工作原理
由四方面組成:

(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序介面
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用 。

Ⅶ java是編譯語言還是解釋語言

過來,不要沒有手機的語言。

Ⅷ java語言在被設計的時候為什麼會加上 編譯 這一步

java語言在被設計的時候為什麼會加上編譯這一步,其實主要的考慮因素是性能,靜態語言的執行效率比動態語言要高得多。所以需要編譯。

Ⅸ 如何編寫簡單的java編譯器(用java語言),比如說能翻譯諸如"public static void main" 的就行。

看看《編譯原理》或許對你有幫助。
要編譯一門語言,你要知道它的語法 syntax 和語義 semantics,語法是用來檢查所謂的「語法錯誤」,語義是讓語句變得有意義,對計算機程序語言來說,就是把它翻譯成計算機能執行的指令。
你需要了解最基本的一些概念諸如正則表達式,上下文無關語言,上下文相關語言,等等。

《編譯原理》是很通用的基礎書籍,裡面我記得有介紹了 yacc 的用法,這是 GNU 里的一款編譯器的編譯器,對應有一個 Java 的 Project 叫 yacc for Java,你可以去 google 找一下。

如果你能寫出一個檢查語法錯誤的程序就已經很不錯了,你可以考慮改做一個編輯器之類的軟體(只需要找錯,不需要編譯)。如果你真要做編譯器,工程量巨大不說,你首先需要對至少兩種語言都熟悉,你需要對計算機的指令和它的執行方式有深刻理解,尤其是 Java 這種動態的高級語言,有類啊對象啊什麼的,要把它翻譯成機器指令實屬不易,至今除了 Sun 的 javac 都沒有很成功的編譯器,那個 GCJ(把 Java 編譯成本地代碼)的嘗試也只成功了一半,以前還被 MingW 包含在工具箱里(和 GCC 什麼的一起),但是有很多特性不支持,而且已經很久不更新了,新版本的 MingW 里都沒有了。想一個人從零開始設計一款 Java 的編譯器,即使是專家都做不到啊。

Ⅹ 編譯java程序需要使用什麼命令

編譯命令是 javac

  1. 首先使用記事本編輯一段簡單的Java代碼

閱讀全文

與自定義編譯語言java相關的資料

熱點內容
怎麼把電子版投標報價加密 瀏覽:29
電腦安全編譯器 瀏覽:364
在伺服器里如何調創造 瀏覽:835
知雲登錄為什麼找不到伺服器 瀏覽:815
python切片位置 瀏覽:375
平板加密視頻怎麼播放 瀏覽:377
程序員上下班不帶電腦 瀏覽:835
androidrsa文件 瀏覽:64
linuxlvds 瀏覽:103
程序員選擇職場 瀏覽:345
累加C語言演算法 瀏覽:948
足浴店用什麼app招人 瀏覽:191
php調用thrift 瀏覽:191
java精度丟失 瀏覽:903
地梁承台相交處箍筋加密 瀏覽:95
程序員繪本 瀏覽:647
php線程安全版 瀏覽:407
lilolinux 瀏覽:111
proteus51編譯工具 瀏覽:309
黑馬程序員c語言基礎函數 瀏覽:839