ನಿಮ್ 0.20 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಹೊಸ ಆವೃತ್ತಿ

ನಡೆಯಿತು ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ ನಿಮ್ 0.20.0. ಭಾಷೆ ಸ್ಥಿರ ಟೈಪಿಂಗ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಪ್ಯಾಸ್ಕಲ್, ಸಿ++, ಪೈಥಾನ್ ಮತ್ತು ಲಿಸ್ಪ್ ಅನ್ನು ಮನಸ್ಸಿನಲ್ಲಿಟ್ಟುಕೊಂಡು ರಚಿಸಲಾಗಿದೆ. ನಿಮ್ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಸಿ, ಸಿ++ ಅಥವಾ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಸಂಕಲಿಸಲಾಗಿದೆ. ತರುವಾಯ, ಲಭ್ಯವಿರುವ ಯಾವುದೇ ಕಂಪೈಲರ್ (ಕ್ಲ್ಯಾಂಗ್, ಜಿಸಿಸಿ, ಐಸಿಸಿ, ವಿಷುಯಲ್ ಸಿ ++) ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಿ/ಸಿ ++ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ಇದು ಚಾಲನೆಯಲ್ಲಿರುವ ವೆಚ್ಚವನ್ನು ನೀವು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳದಿದ್ದರೆ, ಸಿ ಗೆ ಹತ್ತಿರವಾದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಕಸ ಸಂಗ್ರಾಹಕ. ಪೈಥಾನ್‌ನಂತೆಯೇ, ನಿಮ್ ಇಂಡೆಂಟೇಶನ್ ಅನ್ನು ಬ್ಲಾಕ್ ಡಿಲಿಮಿಟರ್‌ಗಳಾಗಿ ಬಳಸುತ್ತದೆ. ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಳನ್ನು (DSLs) ರಚಿಸಲು ಮೆಟಾಪ್ರೋಗ್ರಾಮಿಂಗ್ ಉಪಕರಣಗಳು ಮತ್ತು ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಸರಬರಾಜು ಮಾಡಲಾಗಿದೆ MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.

Nim 0.20 ಬಿಡುಗಡೆಯನ್ನು ಮೊದಲ ಸ್ಥಿರ 1.0 ಬಿಡುಗಡೆಗೆ ಅಭ್ಯರ್ಥಿಯಾಗಿ ಪರಿಗಣಿಸಬಹುದು, ಭಾಷೆಯ ಸ್ಥಿತಿಯನ್ನು ಒಪ್ಪಿಸುವ ಮೊದಲ ಸ್ಥಿರ ಶಾಖೆಯನ್ನು ರೂಪಿಸಲು ಅಗತ್ಯವಿರುವ ಹಲವಾರು ಇಂಟರ್‌ಆಪರೇಬಿಲಿಟಿ-ಬ್ರೇಕಿಂಗ್ ಬದಲಾವಣೆಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಆವೃತ್ತಿ 1.0 ಅನ್ನು ಸ್ಥಿರ, ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಬಿಡುಗಡೆ ಎಂದು ಹೆಸರಿಸಲಾಗಿದೆ, ಅದು ಭಾಷೆಯ ಸ್ಥಿರಗೊಳಿಸಿದ ಭಾಗದಲ್ಲಿ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಖಾತರಿಪಡಿಸುತ್ತದೆ. ಪ್ರತ್ಯೇಕವಾಗಿ, ಕಂಪೈಲರ್ ಪ್ರಾಯೋಗಿಕ ಮೋಡ್ ಅನ್ನು ಸಹ ಹೊಂದಿರುತ್ತದೆ, ಇದರಲ್ಲಿ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ಉಲ್ಲಂಘಿಸಬಹುದಾದ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತದೆ.

ನಿಮ್ 0.20 ರಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸಲಾದ ಬದಲಾವಣೆಗಳ ಪೈಕಿ:

  • "ಅಲ್ಲ" ಈಗ ಯಾವಾಗಲೂ ಅನಿಯಮಿತ ಆಪರೇಟರ್ ಆಗಿದೆ, ಅಂದರೆ. "ದೃಢೀಕರಿಸು (ಅಲ್ಲ)" ನಂತಹ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಈಗ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು "ಒಂದು ಅಲ್ಲ ಪ್ರತಿಪಾದಿಸಿ" ಮಾತ್ರ ಅನುಮತಿಸಲಾಗಿದೆ;
  • ಸಂಕಲನ ಹಂತದಲ್ಲಿ ಪೂರ್ಣಾಂಕಗಳು ಮತ್ತು ನೈಜ ಸಂಖ್ಯೆಗಳ ಪರಿವರ್ತನೆಗಾಗಿ ಕಟ್ಟುನಿಟ್ಟಾದ ಪರಿಶೀಲನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಅಂದರೆ. "const b = uint16(-1)" ಎಂಬ ಅಭಿವ್ಯಕ್ತಿಯು ಈಗ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ -1 ಅನ್ನು ಸಹಿ ಮಾಡದ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸಲಾಗುವುದಿಲ್ಲ;
  • ಸ್ಥಿರಾಂಕಗಳು ಮತ್ತು ಲೂಪ್ ವೇರಿಯೇಬಲ್‌ಗಳಿಗಾಗಿ ಟ್ಯೂಪಲ್‌ಗಳ ಅನ್ಪ್ಯಾಕ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ.
    ಉದಾಹರಣೆಗೆ, ಈಗ ನೀವು 'const (d, e) = (7, "ಎಂಟು")' ಮತ್ತು "f ನಲ್ಲಿ (x, y)" ನಂತಹ ಕಾರ್ಯಯೋಜನೆಗಳನ್ನು ಬಳಸಬಹುದು;

  • ಹ್ಯಾಶ್‌ಗಳು ಮತ್ತು ಟೇಬಲ್‌ಗಳ ಡೀಫಾಲ್ಟ್ ಪ್ರಾರಂಭವನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, "var s: HashSet[int]" ಎಂದು ಘೋಷಿಸಿದ ನಂತರ ನೀವು ತಕ್ಷಣವೇ "s.incl(5)" ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು, ಇದು ಹಿಂದೆ ದೋಷಕ್ಕೆ ಕಾರಣವಾಯಿತು;
  • "ಕೇಸ್" ಆಪರೇಟರ್ ಮತ್ತು ಅರೇ ಇಂಡೆಕ್ಸ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಸಮಸ್ಯೆಗಳಿಗೆ ಸುಧಾರಿತ ದೋಷ ಮಾಹಿತಿ;
  • ಪುನರಾವರ್ತನೆಯ ಸಮಯದಲ್ಲಿ ಟೇಬಲ್ ಉದ್ದವನ್ನು ಬದಲಾಯಿಸುವುದನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ