導航:首頁 > 源碼編譯 > 自製編譯器的軟體

自製編譯器的軟體

發布時間:2022-09-24 12:35:43

A. 用java製作一個簡單的文本編譯器,要能保存、打開,並對打開的文字進行字體、顏色、大小的設置~幫忙好嗎

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;

public class wawu{
public static void main(String args[]){
EditWindowKeyEvent win=new EditWindowKeyEvent();
win.setVisible(true);
win.setTitle("Notebook");
}
}

class EditWindowKeyEvent extends JFrame implements ActionListener {
int s=14,f=Font.PLAIN;
JMenuBar menubar;
JMenu menu1,menu2,color,font,size;
JMenuItem open,save,red,blue,yellow,green,bold,italic,size16,size32,size48,size64;
JTextArea text;
JFileChooser fileDialog;
BufferedReader in;
FileReader fileReader;
BufferedWriter out;
FileWriter fileWriter;
EditWindowKeyEvent(){
init();
setBounds(150,160,280,290);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
void init(){
menubar=new JMenuBar();
menu1=new JMenu("File");
menu2=new JMenu("Format");
open=new JMenuItem("Open");
save=new JMenuItem("Save");
color=new JMenu("Color");
font=new JMenu("Font");
size=new JMenu("Size");
red=new JMenuItem("Red");
yellow=new JMenuItem("Yellow");
green=new JMenuItem("Green");
blue=new JMenuItem("Blue");
bold=new JMenuItem("Bold");
italic=new JMenuItem("Italic");
size16=new JMenuItem("Size16");
size32=new JMenuItem("Size32");
size48=new JMenuItem("Size48");
size64=new JMenuItem("Size64");
menubar.add(menu1);
menubar.add(menu2);
setJMenuBar(menubar);
fileDialog=new JFileChooser();
menu1.add(open);
menu1.add(save);
menu2.add(color);
menu2.add(font);
color.add(red);
color.add(yellow);
color.add(green);
color.add(blue);
font.add(bold);
font.add(italic);
font.add(size);
size.add(size16);
size.add(size32);
size.add(size48);
size.add(size64);
text=new JTextArea();
text.setEditable(true);
add(new JScrollPane(text),BorderLayout.CENTER);
open.addActionListener(this);
save.addActionListener(this);
color.addActionListener(this);
font.addActionListener(this);
red.addActionListener(this);
yellow.addActionListener(this);
green.addActionListener(this);
blue.addActionListener(this);
bold.addActionListener(this);
italic.addActionListener(this);
size16.addActionListener(this);
size32.addActionListener(this);
size48.addActionListener(this);
size64.addActionListener(this);
}
public void actionPerformed(ActionEvent e){

if(e.getSource()==open){
int state=fileDialog.showOpenDialog(this);
if(state==JFileChooser.APPROVE_OPTION){
text.setText(null);
try{
File dir=fileDialog.getCurrentDirectory();
String name=fileDialog.getSelectedFile().getName();
File file=new File(dir,name);
fileReader=new FileReader(file);
in=new BufferedReader(fileReader);
String s=null;
while((s=in.readLine())!=null){
text.append(s+"\n");
}
in.close();
fileReader.close();
}
catch(IOException exp){}
}
}
else if(e.getSource()==save){
int state=fileDialog.showSaveDialog(this);
if(state==JFileChooser.APPROVE_OPTION){
try{
File dir=fileDialog.getCurrentDirectory();
String name=fileDialog.getSelectedFile().getName();
File file=new File(dir,name);
fileWriter=new FileWriter(file);
out=new BufferedWriter(fileWriter);
out.write(text.getText());
out.close();
fileWriter.close();
}
catch(IOException exp){}
}
}
else if(e.getSource()==red){
text.setForeground(Color.red);
}
else if(e.getSource()==blue){
text.setForeground(Color.blue);
}
else if(e.getSource()==green){
text.setForeground(Color.green);
}
else if(e.getSource()==yellow){
text.setForeground(Color.yellow);
}
else if(e.getSource()==bold){
f=Font.BOLD;
}
else if(e.getSource()==italic){
f=Font.ITALIC;
}
else if(e.getSource()==size16){
s=16;
}
else if(e.getSource()==size32){
s=32;
}
else if(e.getSource()==size48){
s=48;
}
else if(e.getSource()==size64){
s=64;
}

Font F=new Font(null,f,s);
text.setFont(F);

}
}

B. 易語言怎麼製作編譯器

易語言製作的軟體不能編譯出新的軟體,你可以用易語言製作兩個軟體,用一個軟體輸出另一個來達到目的,目前易語言製作的軟體生成器就是這個原理

C. 高分求推薦一款CHM製作軟體 真正用過的來

CHM EDITOR是所見所得工具,有現成的模板使用,功能一般,操作簡單,唯一的優勢就是所見所得{可能是唯一一款WYSWYG的軟體}。

不過既然是圖文並茂,建議還是在網頁編輯器中編輯好再用編譯器編譯。這樣效率更高。

就功能來說,推薦FAR HTML。軟體介紹很多,網上查查就知道。

D. arm-linux-gcc交叉編譯器的製作,以及版本選擇問題。

,需要必須有足夠動經驗來支持。
另外,用 RH9 的都是高手,我想你的知識不需要來提問了吧?

1、在 PC 上編譯 arm 的程序當然需要較差編譯器,這個需要自己安裝,或者著現成的交叉編譯器環境,一般是一個特殊參數編譯出來的 gcc + binutils + glibc + linux-header。這個每個人動環境不同,一般都需要自己編譯一個,當然沒有特殊需求,也可以找現成的。不過很難找,因為這套環境還要和你動系統搭配,不然環境不匹配,連這個環境都不能運行,那就更談不上編譯東西了。
有關自己編譯搭建交叉編譯環境,可以看看一個特殊的 Linux 發行版 LFS 的分支: CLFS 。

2、移植分很多意思,移植有可能就意味著這套源代碼不能在目標系統上面編譯,需要你根據相應的知識去修改源代碼來讓這套代碼適應目標編譯器的要求,比如源代碼有 SSE4 的優化,這套程序在非 SSE4 CPU 上無法編譯運行,但目標機器連 SSE1 都不支持。那麼就需要移植。
或者移植僅僅是根據新的環境進行編譯,不需要進行源代碼修改,只需要進行一下編譯就能運行的程序,也可以稱為移植,就是從一個環境、架構 -》另一個環境、架構。都可以稱為移植,但真正的移植意味著修改程序源代碼來適應新環境。你說的這種移植是最簡單的移植。

3、決定目標硬體環境 -》搭建目標編譯器 -》製作目標環境(內核,基礎軟體庫)-》進行應用移植(移植需要的軟體、主應用程序)-》搭建系統文件系統 -》導入目標系統-》啟動目標系統&應用。說起來很簡單,因為這是完全沒有問題的條件下。
至於超級終端。那是用來控制目標系統的。目標系統有可能不能插鍵盤滑鼠顯示器,這就需要一個遠程網路鏈接來進行控制。以及通過遠程鏈接來發送數據。這都需要終端的支持。

虛擬機下面進行開發,不能發揮你的計算機的性能。而且因為隔著 VMware 的軟體模擬層,可能還不會很方便的讓你鏈接目標設備。

至於用 socket ,我還沒見到你的目標需要這個東西,因為所有的東西都是現成的源代碼。不需要你從 0 開始寫,當然你想自己寫一個系統內核,或者伺服器程序,或者全套的系統+應用,我絕對不攔你,但希望你寫完這套東西,能把源代碼發布出來。
ads 可以認為是一個支持環境,他本身不是一個系統的開發 SDK 。
-------------------------------------
ads 沒用過,印象里他還有模擬器,調試器什麼的程序。功能上要比 Linux 開發環境,WinCE 環境下面的東西更多更偏向於硬體方面,畢竟 ads 是 arm 出品的,不太可能偏向於軟體部分設計。Linux 和 WinCE 都是系統而不是硬體工具。

你可以認為交叉編譯器是一個應用程序,一個輸出器。把源代碼輸出為 arm 的代碼,這個應用程序的輸出,是靠他自己的環境,而不是當前系統的環境的。
當前系統的各個軟體的版本,不能影響交叉編譯器輸出的環境(理論上,現實有的時候總是從別的地方給你打擊……),交叉編譯器一般至少有 gcc 、binutils 、glibc 庫、linux kernel 頭文件。

在軟體需求上。
頭文件誰都不依賴,glibc 只需要內核頭文件,其他程序全都依賴於 glibc 。也就是所有程序都不依賴內核,僅僅是依賴於內核頭文件。

gcc 和 binutils 是把程序源代碼根據上面各個環節的需提供的功能來輸出為上面環節裡面的二進製程序。依賴你當前環境的,只有 gcc 和 binutils 兩個程序的執行、控制環節。只有他們兩個依賴的,而不是你的交叉編譯後的程序。

至於編譯器版本的選擇,新版本功能更好,舊版本兼容更好。
這個要看你的實際需要了。應用程序源代碼也調編譯器的,同時也依賴於軟體庫的功能。

arm 開發建議穩定、兼容優先。當然也可以嘗試最新的編譯環境,來獲取更好的優化(前提是還有什麼代碼優化的話)。
另外,團IDC網上有許多產品團購,便宜有口碑

E. 製作exe程序需要用什麼軟體

有人把java和javascript都分不清了,呵呵。在大學時學過一點,全忘了,暈。

將Java應用程序本地編譯為EXE的幾種方法

1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。

2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟體可以從微軟的網站免費下載,地址如下:

http://www.microsoft.com/java/download/dl_sdk40.htm

jexegen的語法如下:

jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]

3. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光碟上提供的EXE組件。

4. 使用InstallAnywhere創建安裝盤。

5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:

http://www.alphaworks.ibm.com/tech/hpc

6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:

http://www.excelsior-usa.com/jet.html

7. Instantiations公司的JOVE

http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。

8. JToEXE

Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。

公司主頁: http://www.bravozulu.com/

下面這個FTP上曾經有過這個軟體,不知道現在是不是還在:

ftp://race.dlut.e.cn/pub/java/tools/jet

9.jbuilder

這個是Borland不公開的使用技巧,能夠通過JBuilder來製作exe文件來啟動Java文件。
JBuilder並不支持本地編譯機制。但是有一個隱藏的技巧可以讓你從可執行文件來啟動Java程序,可以出現或者不出現console窗口。想做到這些,需要JBuilder的bin目錄下的這些文件:
JBuilder.exe
JBuilderW.exe (可選)
JBuilder.config
jdk.config
JavaLauncher.dll
「JBuilder.exe」是一個通用的可執行外殼文件,用以啟動Java程序,」JBuilderW.exe「好像是javaw.exe一樣,它把」JBuilder.exe」包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名。「JBuilder.exe」查找一個文件叫」JBuilder.config」的配置文件,裡麵包含了運行Java程序的必須信息。同樣的」JBuilderW.exe」查找」JBuilder.exe」來啟動不帶Console窗口的Java程序。如果把JBuilder.exe重命名為」foo
.exe」,那」foo.exe」將去尋找」foo.config」配置文件,同樣」JBuilderW.exe」被重命名為」fooW.exe」,它會去尋找」foo.exe」文件。
說到這里,聰明的讀者應該猜到怎樣利用JBuilder.exe來啟動應用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相應的文件名,在JBuilder.config裡面指定主類和類路徑,就能夠通過執行JBuilder.exe(或者被改名後的exe文件)來啟動Java應用程序了。下面是用本機為例。
Borland JBuilder 5被安裝在E:\jbuilder5\目錄下,在E:\jbuilder5\bin\下建立一個temp目錄,然後把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四個文件拷貝到E:\jbuilder5\bin\temp\目錄下,然後在這個目錄下建立一個hello目錄,在這個目錄下生成一個hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
file://hello.java/
package hello;
public class hello{
public static void main(String s[]){
System.out.println("Hello, Exe file!");
}
}
編譯成class文件,然後打開Jbuilder.config文件,作相應的修改:
在JBuilder.config裡面找到下面兩行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改為
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目錄加入類路徑中,這個命令和其它config裡面可以識別的命令可以在JBuilder/bin目錄下的config_readme.txt裡面找到詳細說明。
然後將jdk.config裡面的javapath修改成相對的路徑,例如原來是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最後
將JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
現在執行foo.exe文件
至此,通過修改JBuilder來使用exe文件啟動自己的Java應用程序已經完成了。
但是好玩的地方並不在這個地方,下面的小技巧可能更有趣,將Jar文件打包進入exe文件!
假設利用上面的文件,生成hello.jar包,
jar cvf hello.jar hello\*.class
然後將jar包附加到JBuilder.exe後面去,
/b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件裡面把前面加入的類路徑去掉,並加入下面的路徑:
addpath E:/jbuilder5/bin/temp/foo.exe
然後執行,foo.exe
看到了么?一個含jar包的exe文件被執行了!
這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執行。
請注意:讀者如果使用這個功能,得自己承擔可能帶來的風險,因為Borland對這個功能不提供官方的支持!

還可以去看看 http://www-900.ibm.com/developerWor...ive/index.shtml這是一篇分析的文章,但它提供了很多有用的資料。

F. 30天自製操作系統裡面的nask編譯器誰有,發給我個鏈接

這本書正確的光碟大小是334MB,少於這個數字的就不要下了,而且這本書寫的並不怎麼樣,真正的商業操作系統不是這么搞的,這本書即使學得再透也只能做個玩玩的系統,想學懂操作系統建議你從硬體編程入手,軟體上學的東西派不上用場,推薦一本書作

G. 怎麼用Inno Setup 編譯器製作安裝程序

啟動Inno Setup Compiler漢化版軟體。

選擇創建新的空白腳本文件,按確定。

然後按下一步。

在相應的項目里填上相應的內容,按下一步。

在圖中的1處以瀏覽的方式選擇主程序,然後一個個添加目錄,添加完後要記得編輯所添加的目錄,以免所有文件安裝在目標目錄下。在圖中的2處選添加目錄後按編輯。

在下圖中的1處填上子目錄的名稱,在2處下拉選擇其他設置。設置之後按確定繼續下一步。

按提示內容填寫後執行下一步。

最後生成的腳本格式的程序如下圖所示。編譯好後就完成製作了。

H. 如何製作匯編編譯器

1、你要知道匯編與機器碼的轉換原理
2、你要會寫軟體

這2個是最重要的,會了就可以寫了

I. 《自製編譯器》pdf下載在線閱讀,求百度網盤雲資源

《自製編譯器》[日]青木峰郎電子書網盤下載免費在線閱讀

鏈接: https://pan..com/s/1fOP78HCfHLZHKwnx5PoAUw

密碼:ufdr

書名:自製編譯器
作者名:[日]青木峰郎
豆瓣評分:7.7
出版社:人民郵電出版社
出版年份:2016-6
頁數:472
內容介紹:
本書將帶領讀者從頭開始製作一門語言的編譯器。筆者特意為本書設計了CЬ語言,CЬ可以說是C語言的子集,實現了包括指針運算等在內的C語言的主要部分。本書所實現的編譯器就是C Ь語言的編譯器, 是實實在在的編譯器,而非有諸多限制的玩具。另外,除編譯器之外,本書對以編譯器為中心的編程語言的運行環境,即編譯器、匯編器、鏈接器、硬體、運行時環境等都有所提及,介紹了程序運行的所有環節。
作者介紹:
程序員,著有《Ruby程序設計268技(第2版)》《Ruby源代碼完全解說》《Linux程序設計》等多部編程相關著作。並積極參與標准庫維護、文檔維護等各種各樣的活動。

閱讀全文

與自製編譯器的軟體相關的資料

熱點內容
python調用無參函數 瀏覽:798
主管開除女程序員 瀏覽:712
雲伺服器轉售 瀏覽:540
壓縮空氣漏氣量怎樣計算 瀏覽:102
手機app是怎麼跳轉的 瀏覽:664
學編程的重要性 瀏覽:24
程序員去按摩 瀏覽:739
奧迪手機控車app怎麼添加愛車 瀏覽:4
收磚機石獅編程培訓廠家 瀏覽:761
吉里吉里2安卓模擬器怎麼用 瀏覽:818
編譯器將匯編代碼 瀏覽:681
電路板加密錯誤 瀏覽:21
java自動機 瀏覽:363
相機連拍解壓 瀏覽:31
linuxssh服務重啟命令 瀏覽:330
茂名氫氣隔膜壓縮機 瀏覽:47
程序員地鐵寫程序 瀏覽:330
java的switchenum 瀏覽:329
pdf瓷器 瀏覽:905
怎樣用adb命令刷機 瀏覽:962