畢生編譯器
『壹』 編譯fortran程序應該選用什麼編輯器
(1)CodeBlocks和gfortran配合對於不希望裝VS和IVF等龐雜軟體的人適用。
附安裝方法地址:Codeblocks配合 gfortran 作為 Fortran 開發環境的配置方法-Null。另外,如果你需要在Win上建立一個Fortran編譯環境,不藉助現成編譯器的話,則可以將Gcc編譯器按裝在全英文目錄中,然後將.../gcc/bin文件夾路徑加入系統path中,稍微參考.../gcc/manual文件夾中文檔下,即可實現手動編譯。此種方法同時適用於:C,Java,Fortran。
(2)如果想折騰的話,虛擬機裝個linux系統,設置共享目錄,使得虛擬機中可以調取win中文件可以考慮。畢竟linux中編程較win中簡單方便,但是要掌握debug,需要學習額外知識。(取決於所使用的編譯器)
(3)Visual Studio + Intel 編譯器 (有盜版風險)。
『貳』 關於GraalVM的特點
對於程序員來,一般都會掌握許多編程工具來提高自己的工作效率的,但是如果有一款編程工具能夠適用所有編程語言的話,我覺得應該就是GraalVM了,今天昆明北大青鳥http://www.kmbdqn.cn/就一起來了解一下GraalVM的特點。
1.高性能Java
GraalVM中的Graal得名於Graal編譯器。Graal是一種「萬能」編譯器,也就是,雖然它是單一的實現,卻可以用於很多用途。例如,我們可以使用Graal進行預編譯(ahead-of-time)和即時編譯(just-in-time),也可用於編譯多種編程語言。
2.佔用內存小、啟動速度快的Java
Java對於長時間運行的進程來是相當強大的,但短時間運行的進程可能會因較長的啟動時間和較高的內存佔用而飽受其苦。
3.組合JavaScript、Java、Ruby和R語言
除了Java,GraalVM還包含了JavaScript、Ruby、R語言和Python的實現。它們都是使用一個叫作Truffle的語言實現框架開發的,Truffle讓實現簡單且高性能的語言解釋器成為可能。在使用Truffle開發語言解釋器時,會自動使用Graal作為JIT編譯器。因此,Graal不僅是Java的JIT編譯器和預編譯器,也可以是JavaScript、Ruby、R語言和Python的JIT編譯器。
4.在JVM上運行本地語言
GraalVM也支持c語言,GraalVM可以像運行JavaScript和Ruby之類的語言一樣運行C代碼。
實際上,GraalVM通過運行LLVM位碼的方式來支持C語言,而不是直接運行C代碼。也就是,我們可以將現有工具與C語言一起使用,還可以使用其他可輸出LLVM的語言,例如C++、Fortran和未來可能出現的其他語言。為了簡化演示,我使用了由StephenMcCamant維護的gzip的單文件版本。為簡單起見,它只是將gzip源代碼和autoconf配置連成一個單獨的文件。我還需要修改一些東西才能讓它在macOS上運行起來,但不能在GraalVM上運行。
5.適用於所有編程語言的工具
如果你使用Java編程,可能已經習慣了使用那些高質量的工具,比如IDE、調試器和分析器,但並非所有的編程語言都有這么好用的工具。不過如果你是在GraalVM中使用某種語言,就可以獲得這樣的工具。
6.擴展基於JVM的應用程序
除了可用作獨立語言實現和用於多語言編程,這些語言和工具也可以嵌入到Java應用程序中。新的org.graalvm.polyglotAPI可用於載入和運行其他語言的代碼。
『叄』 CodeBlocks無法編譯怎麼辦
首先我們登陸codeblocks官網,http://www.codeblocks.org/home,上官網才是專業人士的做法^-^,點download進入下載頁面
一般我們只是使用,不會對它的源代碼做修改,因此選擇release版本
之後可以看到針對各種操作系統的版本,一般大家用的是Windows版本,這里注意要選擇後兩個版本,第一個版本是不帶編譯器的,盲目選擇第一個版本產生的後果後面再講。
下載後直接雙擊安裝就好了,注意安裝界面中出現編譯器選項,說明這個版本是自帶編譯器的
如果下載的是前面一步中的第一種,就是這樣的安裝界面,注意到它是不帶編譯器的,因此安裝好後可能無法編譯(除非你電腦上本來有編譯器可以供CodeBlock使用)
下一步安裝目錄我沒有選默認,而是自己改了目錄,這樣可能導致安裝完後仍無法編譯,但修改一下設置就可以解決了
安裝完後首先到安裝目錄下看有沒有裝上編譯器,如果沒有這個文件夾你可能是安裝的不帶編譯器的版本。。。
有上一步的這個文件夾但是仍然無法編譯代碼的話,是由於我們前面安裝時更改了安裝目錄,而程序去默認的目錄下(C盤)去找這個文件夾沒找到就導致無法編譯。解決方法很簡單,打開軟體,選擇setting->Compiler
在編譯器設置頁面手動瀏覽找到MinGW文件夾,或選擇autodetect,就可以完成編譯器的設置,可以順便將GNU
GCC
設為默認編譯器
編譯成功的效果如下,如果不能編譯則log欄為空,還會彈出提示欄。
『肆』 匯編語言程序設計中使用哪種軟體工具
1、MASM。
微軟公司為x86微處理器家族開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm,是Windows下開發匯編的利器。
2、NASM。
全稱The Netwide Assembler,是一款基於80x86和x86-64平台的匯編語言編譯程序,其設計初衷是為了實現編譯器程序跨平台和模塊化的特性。
3、TASM。
Borland公司開發的匯編編譯器,被廣泛用於Turbo C,Quick Basic等編譯器,用作中間過渡編譯。它也能獨立的編譯純匯編或是Win32Asm的代碼。具有編譯快速,高效的特點,至今依然是匯編開發的首選利器。
4、GAS。
GNU匯編器(GNU Assembler),簡稱為GAS,是由GNU計劃所使用的匯編器,GNU的核心精神是自由與分享,所以GAS亦是自由軟體。
5、RadASM。
一款著名的WIN32匯編編輯器,支持MASM、TASM等多種匯編編譯器,Windows界面,支持語法高亮,自帶一個資源編輯器和一個調試器。擁有較強的工程管理功能,加之眾多插件的支持,使得它用匯編語言編寫Windows軟體變得得心應手。
『伍』 如何將devcpp設置成為默認編譯工具
在
cpp
上右鍵,打開方式,選擇打開方式,找到
DevC++,然後勾選始終用它打開。
『陸』 編譯原理的發展歷程
在20世紀40年代,由於馮·諾伊曼在存儲-程序計算機方面的先鋒作用,編寫一串代碼或程序已成必要,這樣計算機就可以執行所需的計算。開始時,這些程序都是用機器語言 (machine language )編寫的。機器語言就是表示機器實際操作的數字代碼,例如:
C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86處理器將數字2移至地址0 0 0 0 (16進制)的指令。
但編寫這樣的代碼是十分費時和乏味的,這種代碼形式很快就被匯編語言(assembly language )代替了。在匯編語言中,都是以符號形式給出指令和存儲地址的。例如,匯編語言指令 MOV X,2 就與前面的機器指令等價(假設符號存儲地址X是0 0 0 0 )。匯編程序(assembler )將匯編語言的符號代碼和存儲地址翻譯成與機器語言相對應的數字代碼。
匯編語言大大提高了編程的速度和准確度,人們至今仍在使用著它,在編碼需要極快的速度和極高的簡潔程度時尤為如此。但是,匯編語言也有許多缺點:編寫起來也不容易,閱讀和理解很難;而且匯編語言的編寫嚴格依賴於特定的機器,所以為一台計算機編寫的代碼在應用於另一台計算機時必須完全重寫。
發展編程技術的下一個重要步驟就是以一個更類似於數學定義或自然語言的簡潔形式來編寫程序的操作,它應與任何機器都無關,而且也可由一個程序翻譯為可執行的代碼。例如,前面的匯編語言代碼可以寫成一個簡潔的與機器無關的形式 x = 2。
在1954年至1957年期間,IBM的John Backus帶領的一個研究小組對FORTRAN語言及其編譯器的開發,使得上面的擔憂不必要了。但是,由於當時處理中所涉及到的大多數程序設計語言的翻譯並不為人所掌握,所以這個項目的成功也伴隨著巨大的辛勞。幾乎與此同時,人們也在開發著第一個編譯器, Noam Chomsky開始了他的自然語言結構的研究。他的發現最終使得編譯器結構異常簡單,甚至還帶有了一些自動化。Chomsky的研究導致了根據語言文法(grammar ,指定其結構的規則)的難易程度以及識別它們所需的演算法來為語言分類。正如現在所稱的-與喬姆斯基分類結構(Chomsky hierarchy )一樣-包括了文法的4個層次:0型、1型、2型和3型文法,且其中的每一個都是其前者的專門化。2型(或上下文無關文法(context-free grammar ))被證明是程序設計語言中最有用的,而且今天它已代表著程序設計語言結構的標准方式。
分析問題( parsing problem ,用於限定上下文無關語言的識別的有效演算法)的研究是在20世紀60年代和70年代,它相當完善地解決了這一問題, 現在它已是編譯理論的一個標准部分。它們與喬姆斯基的3型文法相對應。對它們的研究與喬姆斯基的研究幾乎同時開始,並且引出了表示程序設計語言的單詞(或稱為記號)的符號方式。
人們接著又深化了生成有效的目標代碼的方法,這就是最初的編譯器,它們被一直使用至今。人們通常將其誤稱為優化技術(optimization technique ),但因其從未真正地得到過被優化了的目標代碼而僅僅改進了它的有效性,因此實際上應稱作代碼改進技術(code improvement technique )。
這些程序最初被稱為編譯程序-編譯器,但更確切地應稱為分析程序生成器 (parser generator ),這是因為它們僅僅能夠自動處理編譯的一部分。這些程序中最著名的是 Yacc (yet another compiler- compiler),它是由Steve Johnson在1975年為Unix系統編寫的。
類似地,有窮自動機的研究也發展了另一種稱為掃描程序生成器 (scanner generator )的工具,Lex (與Yacc同時,由Mike Lesk為Unix系統開發的)是這其中的佼佼者。在20世紀70年代後期和80年代早期,大量的項目都關注於編譯器其他部分的生成自動化,這其中就包括代碼生成。這些嘗試並未取得多少成功,這大概是因為操作太復雜而人們又對其不甚了解。
編譯器設計最近的發展包括:首先,編譯器包括了更為復雜的演算法的應用程序,它用於推斷或簡化程序中的信息;這又與更為復雜的程序設計語言(可允許此類分析)的發展結合在一起。其中典型的有用於函數語言編譯的Hindle y - Milner類型檢查的統一演算法。
其次,編譯器已越來越成為基於窗口的交互開發環境(interactive development environment,IDE )的一部 分,它包括了編輯器、鏈接程序、調試程序以及項目管理程序。這樣的IDE的標准並沒有多少, 但是已沿著這一方向對標準的窗口環境進行開發了。
『柒』 筆記本有自帶的c 語言編譯程序嗎
這要看你的筆記本電腦安裝的是什麼操作系統了。
如果是Windows的話,肯定是沒有自帶的,需要自己去另外安裝。
如果是Linux類的(例如紅旗Linux),很可能已經自帶了GCC編譯器,這是一個強大的C語言編譯器程序。除非在安裝的時候特意選擇了不裝GCC,否則默認就是安裝了的。
還有其他筆記本,例如蘋果筆記本電腦 iMAC,也是沒有自帶語言編譯器的。
『捌』 c語言的ide這個ide從何而來
C語言不靠IDE。
你寫在記事本,里用命令行一樣可以編譯出程序來。
明白樓主的意思了。
最早的匯編編譯器是用機器碼寫的,最早的C編譯器是匯編寫的。最早的C++編譯器是用C寫的。之後所有的基本都是C/C++寫的。
『玖』 請問,編譯軟體最早是由誰發明出來的
Grave of Grace
後記
Grace Hopper是個非常amazing的人 (常被稱為Amazing Grace),崇拜她的人相當多。雖然她的事跡很多,但是還有很多有類似事跡的人並沒有像她這樣受到眾人的崇拜。由其中一點我們可以看出來:從1947年開始 (二戰結束後第二年),她獲得了第一個榮譽博士學位 (賓州大學),從那以後,她先後被40多所大學授予榮譽博士學位,其中包括芝加哥大學、華盛頓大學、馬里蘭大學等知名學府。各種婦女社會團體和學術組織都曾授予Grace各種稱號和獎勵。1991年,布希總統在白宮授予她的「美國國家技術獎」 (National Medal of Technology) 是其中的最高獎項,她也是至今惟一獲此殊榮的美國女性。她的名言有很多,她自己最喜歡的,也是她最喜歡對所謂的「年輕人」說的 (在她年老時,她所謂的年輕人就是「年齡不到我的一半的人就叫做年輕人」),這句話是:
「A ship in port is safe, but that is not what ships are built for.」
語錄
下面Grace的語錄中有幾句比較有意思的話。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, 「We』ve always done it this way.」
Humans are allergic to change. They love to say, 「We』ve always done it this way.」 I try to fight that. That』s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one』s superiors; care for one』s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, 「Information」; For in most cases, the information is more valuable than the hardware which processes it.
We』re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We』ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn』t budge a log, they didn』t try to grow a larger ox. We shouldn』t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, 「What are you?」
參考
維基網路:
http://en.wikipedia.org/wiki/Grace_Hopper
國立中央大學數學系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶魯大學計算機系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
計算機先驅:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in網路3Cand taggedcompiler,debug,Grace Murray Hopper,傳記,發明,編譯器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.