క్రిస్టల్ ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల 1.5

క్రిస్టల్ 1.5 ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల ప్రచురించబడింది, దీని డెవలపర్‌లు రూబీ భాషలో అభివృద్ధి సౌలభ్యాన్ని సి భాష యొక్క అధిక అప్లికేషన్ పనితీరు లక్షణంతో కలపడానికి ప్రయత్నిస్తున్నారు. క్రిస్టల్ యొక్క వాక్యనిర్మాణం రూబీకి దగ్గరగా ఉంది, కానీ పూర్తిగా అనుకూలంగా లేదు, అయితే కొన్ని రూబీ ప్రోగ్రామ్‌లు మార్పు లేకుండా నడుస్తాయి. కంపైలర్ కోడ్ క్రిస్టల్‌లో వ్రాయబడింది మరియు Apache 2.0 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.

భాష స్టాటిక్ టైప్ చెకింగ్‌ని ఉపయోగిస్తుంది, కోడ్‌లోని వేరియబుల్స్ మరియు మెథడ్ ఆర్గ్యుమెంట్‌ల రకాలను స్పష్టంగా పేర్కొనాల్సిన అవసరం లేకుండా అమలు చేయబడుతుంది. క్రిస్టల్ ప్రోగ్రామ్‌లు ఎక్జిక్యూటబుల్ ఫైల్‌లుగా కంపైల్ చేయబడతాయి, మాక్రోలు మూల్యాంకనం చేయబడతాయి మరియు కంపైల్ సమయంలో కోడ్ ఉత్పత్తి చేయబడతాయి. క్రిస్టల్ ప్రోగ్రామ్‌లలో, సిలో వ్రాసిన బైండింగ్‌లను కనెక్ట్ చేయడం సాధ్యపడుతుంది. కోడ్ అమలు యొక్క సమాంతరీకరణ "స్పాన్" కీవర్డ్‌ని ఉపయోగించి నిర్వహించబడుతుంది, ఇది ప్రధాన థ్రెడ్‌ను నిరోధించకుండా, ఫైబర్స్ అని పిలువబడే తేలికపాటి థ్రెడ్‌ల రూపంలో నేపథ్య పనిని అసమకాలికంగా అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

ప్రామాణిక లైబ్రరీ CSV, YAML మరియు JSON ప్రాసెసింగ్ కోసం సాధనాలు, HTTP సర్వర్‌లను సృష్టించే భాగాలు మరియు WebSocket మద్దతుతో సహా పెద్ద సాధారణ ఫంక్షన్‌లను అందిస్తుంది. అభివృద్ధి ప్రక్రియలో, క్రిస్టల్ భాషలో కోడ్ యొక్క ఇంటరాక్టివ్ ఎగ్జిక్యూషన్ కోసం వెబ్ ఇంటర్‌ఫేస్ (లోకల్ హోస్ట్:8080 డిఫాల్ట్‌గా) ఉత్పత్తి చేసే “క్రిస్టల్ ప్లే” ఆదేశాన్ని ఉపయోగించడం సౌకర్యంగా ఉంటుంది.

ప్రధాన మార్పులు:

  • కంపైలర్ ఒక వియుక్త పద్ధతిని అమలు చేయడంలో మరియు దాని నిర్వచనంలో ఆర్గ్యుమెంట్ పేర్ల అనురూప్యం కోసం చెక్‌ను జోడించారు. పేరు అసమతుల్యత ఉన్నట్లయితే, ఇప్పుడు హెచ్చరిక జారీ చేయబడుతుంది: వియుక్త తరగతి FooAbstract abstract def foo(number : Int32) : Nil end class Foo < FooAbstract def foo(name : Int32) : Nil p పేరు ముగింపు ముగింపు 6 | def foo(పేరు : Int32) : Nil ^— హెచ్చరిక: స్థాన పరామితి 'పేరు' అనేది FooAbstract#foo(సంఖ్య : Int32) యొక్క ఓవర్‌రైడ్ పద్ధతి యొక్క పరామితి 'సంఖ్య'కు అనుగుణంగా ఉంటుంది, ఇది వేరే పేరును కలిగి ఉంటుంది మరియు పేరు పెట్టబడిన ఆర్గ్యుమెంట్ పాసింగ్‌ను ప్రభావితం చేయవచ్చు
  • వేరియబుల్ విలువకు టైప్ చేయని పద్ధతికి ఆర్గ్యుమెంట్ కేటాయించినప్పుడు, ఆర్గ్యుమెంట్ ఇప్పుడు ఆ వేరియబుల్ రకానికి పరిమితం చేయబడింది. class Foo @x : Int64 def initialize(x) @x = x # పరామితి x @x ముగింపు ముగింపు టైప్ చేయబడుతుంది
  • పద్ధతులు లేదా మాక్రోల పారామీటర్‌లకు ఉల్లేఖనాలను జోడించడానికి మిమ్మల్ని అనుమతిస్తుంది. def foo(@[MaybeUnused] x); ముగింపు # సరే
  • స్థిరాంకాలను సూచికలుగా మరియు టుపుల్స్‌లో పేర్లుగా ఉపయోగించడం కోసం మద్దతు జోడించబడింది. KEY = "s" foo = {s: "String", n: 0} foo[KEY].పరిమాణాన్ని ఉంచుతుంది
  • ఫైల్‌లు మరియు డైరెక్టరీలను తొలగించడానికి ఫైల్ APIకి కొత్త File#delete? పద్ధతులు జోడించబడ్డాయి. మరియు Dir#delete?, ఫైల్ లేదా డైరెక్టరీ తప్పిపోయినట్లయితే ఇది తప్పుగా అందించబడుతుంది.
  • File.tempfile పద్ధతి యొక్క రక్షణ బలోపేతం చేయబడింది, ఇది ఇప్పుడు ఫైల్ పేరును రూపొందించే పంక్తులలో శూన్య అక్షరాలను అనుమతించదు.
  • కంపైలర్ మరియు ఇంటర్‌ప్రెటర్ అవుట్‌పుట్‌లో రంగు హైలైటింగ్‌ను నిలిపివేసే ఎన్విరాన్‌మెంట్ వేరియబుల్ NO_COLOR జోడించబడింది.
  • ఇంటర్‌ప్రెటర్ మోడ్‌లో పని గణనీయంగా మెరుగుపడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి