2011-01-09 171 views
1

可能重複:
Have you used any of the C++ interpreters (not compilers)?有沒有C++解釋器這樣的東西?

嗨,

目前我正在學習C++和編程一般初學者。我一直在嘗試從我正在使用的書中編寫一些代碼來解決一些編程問題。我發現我經常在寫作時犯錯誤,程序運行時出現錯誤。它通常是非常明顯的,當我經常輸出的時候,程序出錯了。但是在長時間的計算中,我常常不確定爲什麼某個特定的代碼以某種方式發揮作用。我最近也在看Python。 Python與解釋器一起工作,解釋器可以接受任何一段Python代碼並計算其輸出。

我想知道是否有類似的C + +。現在,當我想檢查一行或一段代碼時,我必須註釋掉很多,保存它,編譯它,然後從命令行運行它。在我解決它之前,我必須多次執行單個錯誤。有沒有辦法將代碼輸入到運行代碼並顯示輸出的活動終端?在IDE中選擇代碼塊(如選擇文本)或多個塊(以查看函數的處理方式),然後單擊運行以僅運行該代碼塊並查看其代碼輸出時不會註釋掉不相關的行或保存文件。編譯後的代碼只能駐留在內存中。

+3

只要使用調試器,設置斷點,檢查變量等就夠了嗎? – 2011-01-09 21:00:05

+0

我建議花一些時間學習像Emacs這樣的IDE來自動構建/調試/運行週期 – Anycorn 2011-01-09 21:02:04

+0

雖然我使用並喜歡cint,但我會建議Uwe和aaa的方法來改善您的開發週期,而不是試圖強制C++進入RAD模式。 – dmckee 2011-01-09 21:04:47

回答

2

CINT是一個C++接口,它接受幾乎所有有效的C++。不幸的是,許多Linux發行版都不提供它,你可能需要從源代碼構建它......這是一個不平凡的任務。

1

有一些解決方案試圖做到這一點 - 我知道的是ChTextTransformer

但是,我懷疑這工作得很好。 C++根本不是作爲解釋型語言運行的。

其中一個問題是C++是very, very hard to parse。這使得很難提供其他語言通常使用的某些類型的工具。例如,我不認爲有任何C++重構工具確實很好。

1

典型情況下,調試器用於逐行掃描代碼,從選定的斷點開始,並保持所有變量/值的監視。

單元測試是一種測試小部分代碼的技術。

1

在大多數IDE中找到的步進調試器將幫助您解決這個問題。

Here(例如)是如何在Visual Studio中設置執行點的說明,這聽起來像是您想要執行的操作。

對於某些情況,"Immediate Window"可能對您有用。它允許你輸入表達式來立即評估。

您可以使用調試器運行到感興趣的位置(您將設置一個位置),而不是單獨運行各個行或依靠打印語句告訴您所決定打印的任何變量的狀態斷點),那麼您可以檢查任何範圍內變量的狀態,甚至可以改變程序的正常流程。

0

如果您堅持使用交互式解釋器,那麼很長一段時間CINT這是ROOT project中使用的默認解釋器。多年來它變得更好,但在處理模板時仍然有限的能力。此外,還有一項舉措是要在ROOT項目中用JIT compiling interpreter based on clang替代它。

如果我是你,我會學習如何運行編譯器和交互式調試器,就像在一些評論中建議的一樣。

1

C++是一種不像Python的編譯語言。但是那裏沒有幾個c/C++解釋器,但是不確定它們的特性。看看這些:Ch interpreterCINT

如果你真的想學習C++,請不要使用c/C++解釋器。

相關問題