Fortunately, many of these configurations cannot be composed in practice. For example, the conditional blocks defined by an #if directive and its corresponding #else will never be enabled at the same time, because of the exclusive semantic of #if-#else blocks. In order to calculate the exact variability of each compilation unit, our tool generates a formula like f : (x1,...,xn) →{0,1} where x1,x2,...,xn are the Kconfig symbols used in CPP statements. This formula is basically the conjunction of the condition of each conditional block. These conditions are in fact the conjunction of the expression where the Kconfig symbols are used (e.g. CONFIG_SMT && CONFIG_X86) with the structural constraints like nested blocks (implications of the form (child ⇒ parent)).Anothertypeofconstraintis imposed by the semantics of #if-#elif-#else block groups, where for each block (B1,B2,...,Bn) of such group a dependency of the form B1 ⇒¬(B2 ∨B3 ∨...∨Bn) is required.
โชคดี หลาย configurations เหล่านี้ไม่ได้ประกอบในทางปฏิบัติ ตัวอย่าง defined บล็อกแบบมีเงื่อนไข โดยมีคำสั่ง #if และ #else เกี่ยวข้องจะไม่สามารถเปิดใช้งานในเวลาเดียวกัน เนื่องจาก มีเฉพาะความหมายของ if #-#บล็อก else การคำนวณสำหรับความผันผวนแน่นอนของแต่ละหน่วยรวบรวม เครื่องมือของเราสร้างสูตรเช่น f: (x1,..., xn) → { 0,1 } ที่ x 1, x 2,..., xn เป็นสัญลักษณ์ Kconfig ที่ใช้ในงบ CPP สูตรนี้เป็นพื้นร่วมเงื่อนไขของแต่ละบล็อกแบบมีเงื่อนไข เงื่อนไขเหล่านี้อยู่ในความเป็นจริงร่วมของนิพจน์ที่มีใช้สัญลักษณ์ Kconfig (เช่น CONFIG_SMT และ & CONFIG_X86) มีข้อจำกัดทางโครงสร้างเช่นบล็อกซ้อนกัน (ผลของฟอร์ม (เด็ก⇒หลัก)) กำหนด โดยความหมายของ #if-#elif-#else Anothertypeofconstraintis บล็อกกลุ่ม อยู่สำหรับแต่ละบล็อค (B1, B2,..., พัน) ของกลุ่มดังกล่าวอ้างอิงของ⇒¬แบบฟอร์ม B1 (B2 ∨B3 ∨... จำเป็นต้องใช้ ∨Bn)
การแปล กรุณารอสักครู่..

โชคดีที่หลายเหล่านี้ gurations สายนักโทษไม่สามารถประกอบในการปฏิบัติ ตัวอย่างเช่นบล็อกเงื่อนไขนิยามโดยสั่ง # ถ้าและ # อื่นที่เกี่ยวข้องจะไม่ถูกเปิดใช้งานในเวลาเดียวกันเพราะความหมายพิเศษของ # # if- อื่นบล็อก ในการคำนวณความแปรปรวนที่แน่นอนของแต่ละหน่วยรวบรวมเครื่องมือของเราสร้างสูตรเช่น f: (x1, ... , xn) → {0,1} ที่ x1, x2, ... , xn เป็นสัญลักษณ์ไฟ KCON กรัมใช้ ในงบ CPP สูตรนี้เป็นพื้นร่วมสภาพของแต่ละบล็อกเงื่อนไขที่ เงื่อนไขเหล่านี้ในความเป็นจริงร่วมในการแสดงออกที่สัญลักษณ์ไฟ KCON กรัมจะใช้ (เช่น CONFIG_SMT && CONFIG_X86) ด้วยข้อ จำกัด ของโครงสร้างเช่นบล็อกที่ซ้อนกัน (ความหมายของรูปแบบ (เด็ก⇒ผู้ปกครอง)). Anothertypeofconstraintis กำหนดโดยความหมายของ # if- # # elif- กลุ่มบล็อกอื่น ๆ ที่แต่ละบล็อก (B1, B2, ... , พันล้าน) ของกลุ่มดังกล่าวขึ้นของรูปแบบบี 1 ⇒¬ (ที่ B2 ∨B3∨ ... ∨Bn) จะต้อง
การแปล กรุณารอสักครู่..

โชคดีที่หลายเหล่านี้หลอกลวงจึง gurations ไม่สามารถประกอบในการปฏิบัติ ตัวอย่างเช่นเงื่อนไขบล็อก เดอ จึงเป็น#เน็ดโดยถ้าคำสั่งและสอดคล้อง#อื่นจะไม่สามารถเปิดใช้งานในเวลาเดียวกัน เพราะเฉพาะทาง#ถ้า - #อีกบล็อก เพื่อคำนวณระยะเวลาที่แน่นอนของแต่ละหน่วยรวบรวมเครื่องมือของเราสร้างสูตรชอบ f ( x1 , . . . , คริสเตียน ) → keyboard - key - name { 01 } ที่ X1 , X2 , . . . , คริสเตียนเป็นสัญลักษณ์ที่ใช้ใน kcon จึงกรัมสำหรับงบ สูตรนี้โดยทั่วไปคือ การร่วมของเงื่อนไขของแต่ละเงื่อนไขบล็อก เงื่อนไขเหล่านี้อยู่ในความเป็นจริงการร่วมของการแสดงออกที่ kcon กรัม จึงใช้สัญลักษณ์ ( เช่น config_smt && config_x86 ) กับโครงสร้างข้อจำกัดเหมือนบล็อกที่ซ้อนกัน ( ความหมายของรูปแบบ ( พ่อแม่⇒เด็ก ) )anothertypeofconstraintis ที่กําหนด โดยความหมายของ#ถ้า - # elif - #อีกบล็อกกลุ่ม ซึ่งแต่ละบล็อก ( B1 , B2 , . . . , BN ) ของกลุ่มอ้างอิงของแบบฟอร์ม B1 ⇒¬เช่น B2 ( ∨ B3 ∨ . . . . . . . ∨ BN ) จะต้อง
การแปล กรุณารอสักครู่..
