คำถามในหัวข้อ 'compiler-construction'
จะใช้แฟล็ก -MG ใน cc 4.4.1 ได้อย่างไร
ฉันเพิ่งอัปเกรดการติดตั้ง Ubuntu จาก Jaunty เป็น Karmic เห็นได้ชัดว่ารวมถึงการอัปเดตคอมไพเลอร์ GNU C ด้วย เนื่องจากโค้ดที่คอมไพล์ก่อนหน้านี้ไม่มีอีกต่อไป
การรัน cc 4.4.1 (Ubuntu 4.4.1-4ubuntu8) ตอนนี้สร้างข้อผิดพลาดต่อไปนี้ในโค้ดที่ทำงานได้ดีใน cc...
917 มุมมอง
schedule
06.01.2024
ฉันจะรวบรวมโค้ด C++/CLI สำหรับ Silverlight ได้อย่างไร
ฉันมีไลบรารี C++/CLI ที่ฉันต้องการใช้ในแอปพลิเคชัน Silverlight ควรจะเป็นไปได้ที่จะเขียนโค้ดสำหรับ Silverlight ในภาษา .NET ใดก็ได้ แต่จนถึงตอนนี้ฉันเพิ่งหาวิธีคอมไพล์ C# เท่านั้น ดูเหมือนว่า Silverlight จะไม่สามารถใช้ DLL ที่คอมไพล์สำหรับ .NET ได้...
3659 มุมมอง
schedule
29.10.2023
IBM XL C/C++ Compiler: ตรวจสอบโหมดคอมไพเลอร์โดยใช้คำสั่งตัวประมวลผลล่วงหน้า
ฉันกำลังพยายามคอมไพล์ไฟล์ c++ ตัวอย่าง test.cpp โดยใช้คอมไพเลอร์ IBM xlC บนระบบ AIX ไฟล์ควรได้รับการคอมไพล์ทั้งในโหมด 32 บิตและ 64 บิต ฉันใช้คำสั่งต่อไปนี้เพื่อคอมไพล์ในทั้งสองโหมด:
xlC test.cpp (โหมดคอมไพเลอร์เริ่มต้นคือ 32 บิต)
xlC -q64...
2923 มุมมอง
schedule
15.12.2023
สะพาน Objective-C / Cocoa ใน PHP?
มี Objective-C หรือ Cocoa Bridge/Connector ที่ดีสำหรับ PHP หรือไม่ ฉันสนใจในการพัฒนา Mac แต่อยากทำด้วย PHP คงจะดีไม่น้อยหากคุณสามารถแนะนำคอมไพเลอร์ PHP สำหรับ Mac ให้ฉันได้เช่นกัน
หมายเหตุ: ฉันรู้จักแอปที่มีลักษณะคล้าย Titanium อยู่แล้ว...
1337 มุมมอง
schedule
07.12.2023
ฉันจะสร้างไฟล์ .exe PE ที่ปฏิบัติการได้ด้วยตนเองได้อย่างไร
ข้อความทั้งหมดเกี่ยวกับวิธีสร้างคอมไพเลอร์หยุดหลังจากอธิบาย lexers และ parsers พวกเขาไม่ได้อธิบายวิธีสร้างรหัสเครื่อง ฉันต้องการที่จะเข้าใจกระบวนการตั้งแต่ต้นจนจบ
ปัจจุบันสิ่งที่ฉันเข้าใจคือรูปแบบไฟล์ exe ของ Windows เรียกว่า Portable Executable...
7865 มุมมอง
schedule
12.01.2024
เหตุใดค่า Null แบบสั้นจึงถูกแปลงเป็นค่า Null int เพื่อเปรียบเทียบกับค่า Null
เมื่อฉันเปรียบเทียบค่าแบบสั้นที่เป็นโมฆะ คอมไพลเลอร์จะแปลงค่าเหล่านี้เป็นจำนวนเต็มก่อนเพื่อทำการเปรียบเทียบกับค่าว่าง ตัวอย่างเช่น ลองพิจารณาโค้ดง่ายๆ นี้:
short? cTestA;
if (cTestA == null) { ... }
มันถูกแปลงโดยคอมไพเลอร์เป็น:
short?...
5448 มุมมอง
schedule
11.01.2024
รายการ Initializer สำหรับวัตถุที่มีตัวสร้างเริ่มต้น
มีประโยชน์ใด ๆ ในการวางตัวแปรสมาชิกคลาสในรายการตัวเริ่มต้นที่ไม่จำเป็นต้องอยู่ในรายการตัวเริ่มต้นหรือไม่? ตัวอย่าง:
class Foo
{
public:
Foo() {}
};
class Bar
{
public:
Bar() : _foo() {}
private:
Foo _foo;
};...
15242 มุมมอง
schedule
17.11.2023
คอมไพเลอร์จะปรับอาร์กิวเมนต์ที่ไม่ได้ใช้ของฟังก์ชันคงที่ให้เหมาะสมหรือไม่
ฉันมีกลุ่มของฟังก์ชันที่ประกาศไว้ทั้งหมดเป็น static และ fastcall ส่วนใหญ่ใช้ตัวชี้ไปยังโครงสร้างที่รองรับบทบาทของ this ใน C++ ไม่มากก็น้อย ฟังก์ชั่นบางอย่างไม่ต้องการอะไรในโครงสร้าง แต่เพื่อความสม่ำเสมอฉันอยากจะส่งต่อตัวชี้ให้พวกเขาต่อไป...
2431 มุมมอง
schedule
28.10.2023
การรวบรวม LLVM Edge Profiling ด้วย llvm-prof
ฉันใช้คำสั่งเหล่านี้เพื่อรวบรวมโค้ดด้านล่างเพื่อรวบรวมโปรไฟล์ edge/blocks ใน trunk-llvm:
clang -emit-llvm -c sort.c -o sort.bc
opt -insert-edge-profiling sort.bc -o sort_prof.bc
clang sort_prof.bc -lprofile_rt -L/llvms/lib -o sort_prof...
1979 มุมมอง
schedule
07.01.2024
คอมไพเลอร์รวบรวมไฟล์ส่วนหัวที่รวมไว้ทั้งหมดพร้อมกับโปรแกรมหลักทุกครั้งที่เราคอมไพล์โปรแกรมนั้นหรือไม่?
ตาม Wikipedia นี่คือสิ่งที่ C preprocessor ทำ:
"ตัวประมวลผลล่วงหน้าจะแทนที่บรรทัด #include <stdio.h> ด้วยข้อความของไฟล์ ' stdio.h ' ซึ่งประกาศฟังก์ชัน printf() เหนือสิ่งอื่นใด"
แล้วถ้าเป็นเช่นนั้นจริง...
1109 มุมมอง
schedule
19.12.2023
Waf: รวบรวมไฟล์ต้นฉบับแบบเรียกซ้ำและรวมเส้นทาง
โครงสร้างโครงการ C-gcc ของฉันคือ:
\Project\wscript (only one in project)
\Project\build\
\Project\Source\Module_1\foo.c
\Project\Source\Module_1\foo.h
\Project\Source\Module_1\dummy\foo2.h
\Project\Source\Module_n\bar.c...
2246 มุมมอง
schedule
06.01.2024
แผนผังไวยากรณ์นามธรรมสามารถคอมไพล์โดยคอมไพเลอร์หรือล่ามหลายตัวได้หรือไม่
ฉันรู้ว่าไม่มีภาษาโปรแกรมใดที่เข้ากันได้อย่างสมบูรณ์แบบ แต่ฉันอยากถามว่าฉันมีโปรแกรมง่ายๆ อย่าง Hello World หรือไม่ และฉันใช้ขั้นตอนการแปลการคอมไพล์ เช่น lex แยกวิเคราะห์ แล้วรับแผนผัง AST ฉันสามารถส่งมันไปยังสภาพแวดล้อมอื่นได้หรือไม่ โดยบอกว่า AST...
1006 มุมมอง
schedule
04.01.2024
สร้างตัวอย่าง LLVM: สัญลักษณ์ที่ไม่ได้กำหนดสำหรับสถาปัตยกรรม x86_64
ฉันติดตั้ง LLVM บนแล็ปท็อปแล้ว แต่มีปัญหาในการคอมไพล์ตัวอย่าง Fibonacci ใน llvm/examples/Fibonacci :
เสียงดังกราว++ -std=c++11 -I ../../include fibonacci.cpp -o fib
/usr/local/include/llvm/Support/DataTypes.h:57:3: error: "Must...
3494 มุมมอง
schedule
31.12.2023
JavaCC สร้างรหัสที่ไม่ทำงาน
ฉันใช้ JavaCC เป็นครั้งแรก และฉันสังเกตเห็นว่ามันสร้างโค้ดที่ไม่ทำงานจำนวนมาก มีหลายบรรทัดที่ดูเหมือน (ขออภัยการเว้นวรรค มันเป็นอัตโนมัติ):
{if ("" != null) return result;}
throw new Error("Missing return statement in function");
}...
350 มุมมอง
schedule
10.12.2023
ความแตกต่างระหว่างไลบรารีแบบคงที่และไลบรารีแบบไดนามิกโดยไม่สนใจว่าตัวเชื่อมโยง/ตัวโหลดใช้งานอย่างไร
ฉันเข้าใจว่าไลบรารีแบบคงที่/ไดนามิกถูกใช้โดยตัวเชื่อมโยง/ตัวโหลดอย่างไร
อย่างไรก็ตาม เหตุใดจึงไม่มีไฟล์ไลบรารีประเภทเดียวที่มาพร้อมกับแฟล็กคอมไพเลอร์ซึ่งระบุว่าควรเชื่อมโยงไลบรารีอย่างไร (คงที่และไดนามิก)
จากข้อเท็จจริงง่ายๆ...
915 มุมมอง
schedule
19.01.2024
เหตุใด NASM จึงไม่มีปัญหากับการจำคำสั่งที่ถูกต้องเป็นชื่อสัญลักษณ์ในตัวถูกดำเนินการ
ฉันเขียนโปรแกรมง่ายๆ ต่อไปนี้ แต่ nasm ปฏิเสธที่จะคอมไพล์มัน
section .text
global _start
_start:
mov rax, 0x01
mov rdi, 0x01
mov rsi, str
mov rdx, 0x03
syscall
mov rax, 60
syscall
segment .data
str db 'Some...
139 มุมมอง
schedule
11.01.2024
Lexers ที่ขับเคลื่อนด้วยตาราง - แล้วคำสำคัญที่สงวนไว้ล่ะ
คำถามนี้เกิดจากคำถามอื่นที่ฉันถามในเว็บไซต์ CS ข้อมูลอ้างอิง
ฉันได้ลองค้นหาบันทึกหลักสูตรออนไลน์จากมหาวิทยาลัยต่างๆ เพื่อหาคำตอบสำหรับปัญหาที่ฉันกำลังเผชิญอยู่
ฉันต้องใช้คอมไพเลอร์สำหรับภาษาที่กำหนดเองสำหรับงานที่ได้รับมอบหมาย...
164 มุมมอง
schedule
20.12.2023