Red (programming language)
ಕೆಂಪು ಎಂಬುದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ರಿಬೋಲ್ನ ಮಿತಿಗಳನ್ನು ನಿವಾರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ. 2011 ರಲ್ಲಿ ನೆನಾಡ್ ರಾಕೊಸೆವಿಕ್ ಅವರು ಕೆಂಪು ಬಣ್ಣವನ್ನು ಪರಿಚಯಿಸಿದರು ಮತ್ತು ಇದು ಅನಿವಾರ್ಯ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ. ಇದರ ವಾಕ್ಯರಚನೆ ಮತ್ತು ಸಾಮಾನ್ಯ ಬಳಕೆಯು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ರೆಬೋಲ್ ಭಾಷೆಯ ಬಳಕೆಯನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. ಕೆಂಪು ಬಣ್ಣದ ಅನುಷ್ಠಾನದ ಆಯ್ಕೆಗಳು ಪೂರ್ಣ ಸ್ಟ್ಯಾಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ರಚಿಸಲು ಉದ್ದೇಶಿಸಿವೆಃ ಕೆಂಪು ಬಣ್ಣವನ್ನು ಅತ್ಯಂತ ಉನ್ನತ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ (ಡಿಎಸ್ಎಲ್ಗಳು ಮತ್ತು ಜಿಯುಐಗಳು) ಜೊತೆಗೆ ಕಡಿಮೆ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ (ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳು ಮತ್ತು ಡಿವೈಸ್ ಡ್ರೈವರ್ಗಳು) ಗಾಗಿ ಬಳಸಬಹುದು. ಈ ವಿಧಾನದ ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ ಭಾಷೆಯು ಎರಡು ಭಾಗಗಳನ್ನು ಹೊಂದಿದೆಃ ಕೆಂಪು/ವ್ಯವಸ್ಥೆ ಮತ್ತು ಕೆಂಪು. ಕೆಂಪು/ವ್ಯವಸ್ಥೆಯು ಸಿ ಅನ್ನು ಹೋಲುತ್ತದೆ, ಆದರೆ ಉದಾಹರಣೆಗೆ ರಿಬೋಲ್ ಲೆಕ್ಸಿಕಲ್ ರಚನೆಯಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗಿದ್ದು, ಅದರ ಬದಲಿಗೆ ಬರೆಯಬಹುದು. ಕೆಂಪು ಎಂಬುದು ರೀಬೋಲ್ ತರಹದ ಶಬ್ದಾರ್ಥಗಳೊಂದಿಗೆ ಮೆಟಾ-ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವಿರುವ ಹೋಮೋಯಿಕೋನಿಕ್ ಭಾಷೆಯಾಗಿದೆ. ರೆಡ್ ನ ರನ್ಟೈಮ್ ಲೈಬ್ರರಿಯನ್ನು ರೆಡ್/ಸಿಸ್ಟಂನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಇದು ಹೈಬ್ರಿಡ್ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆಃ ಇದು ಸ್ಥಿರವಾಗಿ ಏನು ಊಹಿಸಬಹುದೆಂದು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಇಲ್ಲದಿದ್ದರೆ ಎಂಬೆಡೆಡ್ ಇಂಟರ್ಪ್ರಿಟರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಯೋಜನೆಯ ಮಾರ್ಗಸೂಚಿಯು ನಡುವಿನ ಪ್ರಕರಣಗಳಿಗೆ ಜಸ್ಟ್-ಇನ್-ಟೈಮ್ ಕಂಪೈಲರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಇದನ್ನು ಇನ್ನೂ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿಲ್ಲ. ರೆಡ್ ಯಾವುದೇ ಇತರ ಟೂಲ್ ಚೈನ್ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿರಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ; ಅದು ತನ್ನದೇ ಆದ ಕೋಡ್ ಉತ್ಪಾದನೆಯನ್ನು ಮಾಡುತ್ತದೆ. ಆದ್ದರಿಂದ ಕೆಂಪು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಅದು ಬೆಂಬಲಿಸುವ ಯಾವುದೇ ವೇದಿಕೆಯಿಂದ ಕಮಾಂಡ್-ಲೈನ್ ಸ್ವಿಚ್ ಮೂಲಕ ಬೇರೆ ಯಾವುದೇ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗೆ ಕ್ರಾಸ್-ಕಂಪೈಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿದೆ. ಕೆಂಪು ಮತ್ತು ಕೆಂಪು/ಸಿಸ್ಟಮ್ ಎರಡನ್ನೂ ಮಾರ್ಪಡಿಸಿದ ಬಿಎಸ್ಡಿ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್ ಆಗಿ ವಿತರಿಸಲಾಗಿದೆ. ರನ್ಟೈಮ್ ಲೈಬ್ರರಿಯನ್ನು ಹೆಚ್ಚು ಅನುಮತಿಸುವ ಬೂಸ್ಟ್ ಸಾಫ್ಟ್ವೇರ್ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. ಆವೃತ್ತಿ 0.6.4ರಂತೆ ಕೆಂಪು ಬಣ್ಣವು "ಸಿಂಪಲ್ ಜಿ. ಸಿ". ಎಂಬ ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು ಒಳಗೊಂಡಿದೆ. ಪರಿಚಯ ರೆಡ್ ಅನ್ನು ನೆದರ್ಲ್ಯಾಂಡ್ಸ್ನಲ್ಲಿ ಫೆಬ್ರವರಿ 2011 ರಲ್ಲಿ ರೆಬೋಲ್ ಮತ್ತು ಬೊರಾನ್ ಸಮ್ಮೇಳನದಲ್ಲಿ ಅದರ ಲೇಖಕ ನೆನಾಡ್ ರಾಕೊಸೆವಿಕ್ ಪರಿಚಯಿಸಿದರು. ಸೆಪ್ಟೆಂಬರ್ 2011 ರಲ್ಲಿ, ಸಾಫ್ಟ್ವೇರ್ ಸ್ವಾತಂತ್ರ್ಯ ದಿನ 2011 ರ ಸಂದರ್ಭದಲ್ಲಿ ರೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಹೆಚ್ಚಿನ ಪ್ರೇಕ್ಷಕರಿಗೆ ಪ್ರಸ್ತುತಪಡಿಸಲಾಯಿತು. ರಾಕೋಸೆವಿಕ್ ದೀರ್ಘಕಾಲದ ರೆಬೋಲ್ ಡೆವಲಪರ್ ಆಗಿದ್ದು, ಚೀಯೆನ್ ಎಚ್. ಟಿ. ಟಿ. ಪಿ ಸರ್ವರ್ನ ಸೃಷ್ಟಿಕರ್ತ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತಾರೆ. ವೈಶಿಷ್ಟ್ಯಗಳು ರೆಡ್ ನ ವಾಕ್ಯರಚನೆಯು ಮತ್ತು ಶಬ್ದಾರ್ಥವು ರೆಬೋಲ್ನ ಪದಗಳಿಗೆ ಬಹಳ ಹತ್ತಿರದಲ್ಲಿವೆ. ರಿಬೋಲ್ನಂತೆಯೇ, ಇದು ಮೆಟಾಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಳನ್ನು (ಡಿಎಸ್ಎಲ್) ಬಲವಾಗಿ ಬೆಂಬಲಿಸುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಉಪಭಾಷೆಗಳಿಗೆ (ಎಂಬೆಡೆಡ್ ಡಿಎಸ್ಎಲ್ಗಳನ್ನು ರಚಿಸಲು) ಅತ್ಯಂತ ಪರಿಣಾಮಕಾರಿ ಸಾಧನವಾಗಿದೆ. ಕೆಂಪು ಭಾಷೆಯು ರೆಡ್/ಸಿಸ್ಟಮ್ ಎಂಬ ಉಪಭಾಷೆಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸೌಲಭ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಸಿ-ಮಟ್ಟದ ಭಾಷೆಯಾಗಿದೆ. ಕೆಂಪು ಬಣ್ಣವನ್ನು ಇತರ ಉಪಕರಣಗಳು ಮತ್ತು ಭಾಷೆಗಳೊಂದಿಗೆ ಡಿಎಲ್ಎಲ್ (ಲಿಬ್ರೆಡ್) ಆಗಿ ಸಂಯೋಜಿಸುವುದು ಸುಲಭ ಮತ್ತು ತುಂಬಾ ಹಗುರವಾಗಿರುತ್ತದೆ (ಸುಮಾರು 1 ಎಂಬಿ). ಇದು ವಿವಿಧ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗೆ ಕ್ರಾಸ್-ಕಂಪೈಲ್ ಮಾಡಲು ಸಹ ಸಾಧ್ಯವಾಗುತ್ತದೆ (ಕೆಳಗಿನ ಕ್ರಾಸ್ ಕಂಪೈಲೇಷನ್ ವಿಭಾಗವನ್ನು ನೋಡಿ) ಮತ್ತು ಅವುಗಳ ಅಗತ್ಯವಿರುವ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗಾಗಿ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ರಚಿಸಬಹುದು (ಉದಾಹರಣೆಗೆ, ಆಂಡ್ರಾಯ್ಡ್ನಲ್ಲಿ ಎಎಪಿಕೆ). ಕೆಂಪು ಬಣ್ಣವು ಆಧಾರವಾಗಿರುವ ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ದತ್ತಾಂಶ ಹರಿವಿನ ಎಂಜಿನ್ನನ್ನು ಆಧರಿಸಿದ ಸಂಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಕ್ರಾಸ್-ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಜಿಯುಐ ಸಿಸ್ಟಮ್, ಎಸ್ವಿಜಿಯೊಂದಿಗೆ ಹೋಲಿಸಬಹುದಾದ 2ಡಿ ಡ್ರಾಯಿಂಗ್ ಉಪಭಾಷೆ, ಕಂಪೈಲ್-ಟೈಮ್ ಮತ್ತು ರನ್ಟೈಮ್ ಮ್ಯಾಕ್ರೋ ಬೆಂಬಲ ಮತ್ತು 40ಕ್ಕೂ ಹೆಚ್ಚು ಪ್ರಮಾಣಿತ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. 2011ರ ಸಾಫ್ಟ್ವೇರ್ ಸ್ವಾತಂತ್ರ್ಯ ದಿನದಂದು ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ರೆಡ್ ಗೋಲ್ಸ್ ಪಟ್ಟಿ ಈ ಕೆಳಗಿನಂತಿದೆಃ ಸರಳತೆ ("ಕೋಡ್ ಬರೆಯಲು ಐಡಿಇ ಅಗತ್ಯವಿಲ್ಲ"). ಸಾಂದ್ರತೆ ("ಹೆಚ್ಚು ಅಭಿವ್ಯಕ್ತಿಶೀಲವಾಗಿರುವುದು ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ"). ವೇಗ ("ತುಂಬಾ ನಿಧಾನವಾಗಿದ್ದರೆ, ಅದು ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯ ಉದ್ದೇಶವಾಗಿರಲು ಸಾಧ್ಯವಿಲ್ಲ"). "ಹಸಿರು" ಆಗಿರಿ, ಸಣ್ಣ ಹೆಜ್ಜೆಗುರುತನ್ನು ಹೊಂದಿರಿ ("ಏಕೆಂದರೆ ಸಂಪನ್ಮೂಲಗಳು ಮಿತಿಯಿಲ್ಲ"). ಸರ್ವವ್ಯಾಪಿತ್ವ ("ಎಲ್ಲೆಡೆ ಹರಡಿ"). ಪೋರ್ಟಬಿಲಿಟಿ, ಒಮ್ಮೆ ಎಲ್ಲೆಡೆ ಬರೆಯಿರಿ ("ಅದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಿಂದ ಕನಿಷ್ಠ ನಿರೀಕ್ಷಿತವಾಗಿದೆ"). ಹೊಂದಿಕೊಳ್ಳುವಿಕೆ ("ಅತ್ಯುತ್ತಮವಲ್ಲ ಆದರೆ ಯಾವುದೇ ಕಾರ್ಯಕ್ಕೆ ಸೂಕ್ತವಾಗಿದೆ!") ಡೆವಲಪ್ಮೆಂಟ್ ರೆಡ್ನ ಅಭಿವೃದ್ಧಿಯನ್ನು ಎರಡು ಹಂತಗಳಲ್ಲಿ ಮಾಡಲು ಯೋಜಿಸಲಾಗಿದೆಃ ಆರಂಭಿಕ ಹಂತಃ ರಿಬೋಲ್ 2 ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಹಂತದಲ್ಲಿ ಬರೆಯಲಾದ ಕೆಂಪು ಮತ್ತು ಕೆಂಪು/ಸಿಸ್ಟಮ್ ಕಂಪೈಲರ್ಗಳುಃ ಕೆಂಪು ಮತ್ತು ಕೆಂಪು/ಸಿಸ್ಟಮ್ ಕಂಪೈಲರ್ಗಳು ಕೆಂಪು ಜೆಐಟಿ-ಕಂಪೈಲರ್ನಿಂದ ಪೂರಕವಾಗಿವೆ, ಇವೆಲ್ಲವೂ ರೆಡ್ ಕ್ರಾಸ್ ಸಂಕಲನದಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟಿವೆ ಕೆಂಪು ಪ್ರಸ್ತುತ ಈ ಕೆಳಗಿನ ಕ್ರಾಸ್-ಕಂಪೈಲೇಷನ್ ಗುರಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆಃ ಎಂಎಸ್-ಡಾಸ್ಃ ವಿಂಡೋಸ್, x86, ಕನ್ಸೋಲ್ (ಮತ್ತು ಜಿಯುಐ) ಅಪ್ಲಿಕೇಶನ್ಗಳು ವಿಂಡೋಸ್ಃ ವಿಂಡೋಸ್, x86, ಜಿಯುಐ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಲಿನಕ್ಸ್, x86 ಲಿನಕ್ಸ್-ಎಆರ್ಎಂಃ ಲಿನಕ್ಸ್, ಎಆರ್ಎಂವಿ5, ಆರ್ಮೆಲ್ (ಸಾಫ್ಟ್-ಫ್ಲೋಟ್) ರಾಸ್ಪ್ಬೆರಿ ಪೈಃ ಲಿನಕ್ಸ್, ಎಆರ್ಎಂವಿ5, ಆರ್ಮ್ಹೆಫ್ (ಹಾರ್ಡ್-ಫ್ಲೋಟ್) ಫ್ರೀಬಿಎಸ್ಡಿಃ x86 ಡಾರ್ವಿನ್ಃ ಓಎಸ್ ಹಲೋ ವರ್ಲ್ಡ್! ಕೆಂಪು [ಶೀರ್ಷಿಕೆಃ "ಸಿಂಪಲ್ ಹಲೋ ವರ್ಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್"] ಮುದ್ರಿಸಿ "ಹಲೋ ವರ್ಲ್ಡ್!" ಫ್ಯಾಕ್ಟರಿಯಲ್ ಉದಾಹರಣೆ ಮುಖ್ಯಃ ಇವುಗಳನ್ನು ವಾಕ್ಯರಚನೆಯ ಉದಾಹರಣೆಗಳಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆ. ಕೆಂಪು ಬಣ್ಣವು 64-ಬಿಟ್ ಬೆಂಬಲವನ್ನು ಹೊಂದುವವರೆಗೆ, ಪೂರ್ಣಾಂಕದ ಉದಾಹರಣೆಯು 32-ಬಿಟ್ ಪೂರ್ಣಾಂಕವನ್ನು ಬಹಳ ಬೇಗ ತುಂಬಿ ಹರಿಯುತ್ತದೆ. ಅದನ್ನು 'ಫ್ಲೋಟ್!' ಎಂದು ಬದಲಾಯಿಸುವುದು ಮತ್ತಷ್ಟು ದೂರ ಹೋಗುತ್ತದೆ, ಆದರೆ ಇವು ಕೇವಲ ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯನ್ನು ತೋರಿಸಲು ಮಾತ್ರ. ಈ ಕೆಳಗಿನವು ಕೆಂಪು ಬಣ್ಣದ ಅಪವರ್ತನೀಯ ಉದಾಹರಣೆಯಾಗಿದೆಃ ಕೆಂಪು [ಶೀರ್ಷಿಕೆಃ "ಒಂದು ಅಪವರ್ತನೀಯ ಲಿಪಿ"]; ಗಮನಿಸಿಃ ಶೀರ್ಷಿಕೆಯು ಐಚ್ಛಿಕವಾಗಿದೆ. ಅಪವರ್ತನೀಯಃ ಫಂಕ್ [x [ಪೂರ್ಣಾಂಕ!] ; ಕೆಂಪು ಬಣ್ಣದಲ್ಲಿ ವಾದದ ಪ್ರಕಾರವನ್ನು ನೀಡುವುದು ಐಚ್ಛಿಕವಾಗಿದೆ] [ಎರಡೂ x = 0 [1] [x * ಅಪವರ್ತನೀಯ x-1] ಈ ಕೆಳಗಿನವು ಕೆಂಪು/ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಅದೇ ಅಪವರ್ತನೀಯ ಉದಾಹರಣೆಯಾಗಿದೆ (ಈ ಸರಳ ಸಂದರ್ಭದಲ್ಲಿ, ಮೂಲ ಸಂಕೇತವು ಕೆಂಪು ಆವೃತ್ತಿಯನ್ನು ಹೋಲುತ್ತದೆ): ಕೆಂಪು/ವ್ಯವಸ್ಥೆ [ಶೀರ್ಷಿಕೆಃ "ಅಪವರ್ತನೀಯ ಲಿಪಿ"] ಅಪವರ್ತನೀಯಃ ಫಂಕ್ [x [ಪೂರ್ಣಾಂಕ!] ಕೆಂಪು/ಸಿಸ್ಟಮ್ ರಿಟರ್ನ್ನಲ್ಲಿ ಇದು ಕಡ್ಡಾಯವಾಗಿದೆಃ [ಪೂರ್ಣಾಂಕ!] ; ಇದು ಕೆಂಪು/ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಕಡ್ಡಾಯವಾಗಿದೆ] [x = 0 [1] [x * ಅಪವರ್ತನೀಯ x-1]] ರಿಬೋಲ್ ಉಲ್ಲೇಖಗಳನ್ನು ಸಹ ನೋಡಿ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಗಿಟ್ಹಬ್ನಲ್ಲಿ ಕೆಂಪು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ Redprogramming.com ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ವ್ಯವಸ್ಥೆಗಳು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ವಿಸ್ತರಿಸಬಹುದಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಡೊಮೈನ್-ನಿರ್ದಿಷ್ಟ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಉನ್ನತ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಹೋಮೋಯಿಕೋನಿಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಕಾರ್ಯವಿಧಾನದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳು ಕ್ರಾಸ್-ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಉಚಿತ ಸಾಫ್ಟ್ವೇರ್ ಕ್ರಾಸ್-ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಸಾಫ್ಟ್ವೇರ್ 2011 ರ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ ರಚಿಸಲಾದ ಬೂಸ್ಟ್ ಪರವಾನಗಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಬಿಎಸ್ಡಿ ಪರವಾನಗಿ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಬಳಸುವ ಉಚಿತ ಕಂಪೈಲರ್ಗಳು ಮತ್ತು ಇಂಟರ್ಪ್ರಿಟರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್