ਬੀਨ ਮਸ਼ੀਨ ਰੀਟਰੋਸਪੈਕਟਿਵ, ਭਾਗ 7

ਬੀਨ ਮਸ਼ੀਨ ਰੀਟਰੋਸਪੈਕਟਿਵ, ਭਾਗ 7


ਅਸੀਂ ਇੱਕ ਆਮ-ਉਦੇਸ਼ ਵਾਲੀ ਲਾਈਨ-ਆਫ-ਬਿਜ਼ਨਸ ਓਓ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਜਿਵੇਂ ਕਿ ਪਾਈਥਨ, ਸੀ#, ਜਾਵਾ, ਆਦਿ ਵਿੱਚ ਇੱਕ ਕੰਪਾਈਲਰ ਕਿਵੇਂ ਲਿਖ ਸਕਦੇ ਹਾਂ? ਕੰਪਾਈਲਰ ਪ੍ਰੋਗਰਾਮ ਹਨ, ਇਸਲਈ ਅਸੀਂ ਸਵਾਲ ਨੂੰ ਹੋਰ ਆਮ ਬਣਾ ਸਕਦੇ ਹਾਂ: ਅਸੀਂ ਕਿਵੇਂ ਲਿਖਦੇ ਹਾਂ ਪ੍ਰੋਗਰਾਮ?

ਲਗਭਗ ਹਰ ਵਿਆਪਕ ਤੌਰ ‘ਤੇ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਲਈ ਆਮ ਮੂਲ ਵਿਚਾਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ ਰਚਨਾ:

  • ਸਮੱਸਿਆ ਨੂੰ ਕਈ ਉਪ-ਸਮੱਸਿਆਵਾਂ ਵਿੱਚ ਵੰਡੋ
  • ਫੰਕਸ਼ਨ ਲਿਖੋ ਜੋ ਹਰੇਕ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਉਪ-ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ
  • ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਲਿਖ ਕੇ ਇੱਕ ਹੱਲ ਤਿਆਰ ਕਰੋ ਜੋ ਹੋਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਨ

ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਗਠਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਦਾ ਵੇਰਵਾ ਭਾਸ਼ਾ ਤੋਂ ਭਾਸ਼ਾ ਤੱਕ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ; ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਹੋਰ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ, ਜਾਂ ਕਲਾਸਾਂ ਵਿੱਚ, ਜਾਂ ਮੋਡੀਊਲਾਂ ਵਿੱਚ, ਜਾਂ ਜੋ ਵੀ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪਰ ਅੰਤ ਵਿੱਚ, ਜ਼ਿਆਦਾਤਰ ਪ੍ਰੋਗਰਾਮਾਂ ਨੂੰ ਫੰਕਸ਼ਨਾਂ ਦੀ ਰਚਨਾ ਵਜੋਂ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।

ਹੁਣ, ਅਸੀਂ ਬਸ ਨਹੀਂ ਕਾਲ ਕਰੋ ਦੇ ਕਾਰਜ. ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵੀ ਹਨ ਕੰਟਰੋਲ ਵਹਾਅਜਿਸ ਨਾਲ ਉਹ ਬਣਾਉਂਦੇ ਹਨ ਫੈਸਲੇ ਕਿਸ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਾਲ ਕਰਨਾ ਹੈ ਬਾਰੇ:

  • foo() ਨੂੰ ਕਾਲ ਕਰੋ ਜੇਕਰ ਅਤੇ ਕੇਵਲ ਜੇਕਰ ਕੁਝ ਭਵਿੱਖਬਾਣੀ ਸੱਚ ਹੈ.
  • foo() ਨੂੰ ਵਾਰ-ਵਾਰ ਕਾਲ ਕਰੋ ਜਦੋਂ ਤੱਕ ਕਿ ਕੁਝ ਅਨੁਮਾਨ ਗਲਤ ਨਹੀਂ ਹੁੰਦਾ।
  • foo() ਨੂੰ ਕਾਲ ਕਰੋ ਪਰ ਜੇਕਰ ਇਹ ਫੇਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਇਸ ਕੈਚ ਬਲਾਕ ਦੀ ਬ੍ਰਾਂਚ ਕਰੋ
  • … ਇਤਆਦਿ

ਅਸੀਂ ਆਮ ਤੌਰ ‘ਤੇ ਨਹੀਂ ਸੋਚਦੇ ਕੰਟਰੋਲ ਵਹਾਅ ਦੀ ਇੱਕ ਕਿਸਮ ਦੇ ਤੌਰ ਤੇ ਫੰਕਸ਼ਨ ਰਚਨਾ. ਕੀ ਹੋਇਆ ਜੇ ਅਸੀਂ ਕੀਤਾ? ਅਸੀਂ ਕੰਬੀਨੇਟਰਜ਼ ਵਿੱਚ ਨਿਯੰਤਰਣ ਪ੍ਰਵਾਹ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਸੰਯੋਜਕ ਤਰਕ ਅਤੇ ਕਾਰਜਸ਼ੀਲ ਪ੍ਰੋਗਰਾਮਿੰਗ ਦੁਆਰਾ ਪ੍ਰੇਰਿਤ ਵਿਚਾਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ਅਤੇ ਫਿਰ ਕੰਪਾਈਲਰ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਵਰਕਫਲੋ ਨੂੰ ਸੰਖੇਪ ਰੂਪ ਵਿੱਚ ਬਣਾਉਣ ਲਈ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।


ਇੱਕ “ਪਾਰਸ ਟ੍ਰੀ” ਜਾਂ ਐਬਸਟ੍ਰੈਕਟ ਸਿੰਟੈਕਸ ਟ੍ਰੀ (ਇਸ ਤੋਂ ਬਾਅਦ AST) ਇੱਕ ਡੇਟਾ ਢਾਂਚਾ ਹੈ ਜੋ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਸੰਟੈਕਟਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਸ ਲੜੀ ਦੇ ਅਗਲੇ ਕੁਝ ਐਪੀਸੋਡਾਂ ਵਿੱਚ ਅਸੀਂ ਇਸ ਸਵਾਲ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ ਕਿ ਇੱਕ ਕੰਪਾਈਲਰ ਲੇਖਕ ਕੰਪਾਈਲਰ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਇੱਕ ਆਮ ਉਪ-ਸਮੱਸਿਆ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ: ਅਸੀਂ ਇੱਕ ਕਿਵੇਂ ਲਿਖ ਸਕਦੇ ਹਾਂ AST→ AST ਸੰਯੁਕਤ ਤਰਕ ਦੁਆਰਾ ਪ੍ਰੇਰਿਤ ਇੱਕ ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫੰਕਸ਼ਨ?

ਕਿਉਂਕਿ ਬੀਨ ਮਸ਼ੀਨ ਅਤੇ ਇਸਦਾ ਕੰਪਾਈਲਰ ਦੋਵੇਂ ਪਾਈਥਨ ਵਿੱਚ ਲਿਖੇ ਗਏ ਹਨ, ਅਸੀਂ ਪਾਈਥਨ ਦੁਆਰਾ ਪਹਿਲਾਂ ਹੀ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਬਹੁਤ ਹੀ ਸੁਵਿਧਾਜਨਕ ਪਾਰਸ ਟ੍ਰੀ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ। ast ਮੋਡੀਊਲ. ਇਹ ਬਹੁਤ ਸਿੱਧਾ ਹੈ. ਹਰ ਨੋਡ ਰੁੱਖ ਵਿੱਚ ਇੱਕ ਕਿਸਮ ਅਤੇ ਜ਼ੀਰੋ ਜਾਂ ਵੱਧ ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ ਬੱਚੇ. ਲੇਬਲ ‘ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, ਬੱਚਾ ਇੱਕ ਮੁੱਲ ਹੋ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਇੱਕ ਸਤਰ ਜਾਂ ਨੰਬਰ, ਜਾਂ ਇੱਕ ਨੋਡ।

ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਸਾਡੇ ਕੋਲ ਇੱਕ ਸਟੇਟਮੈਂਟ “x = 2 + 3” ਹੈ ਤਾਂ ਅਸਾਈਨਮੈਂਟ ਦੇ ਸੱਜੇ ਪਾਸੇ ਲਈ AST ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ (ਇਹ ਮੰਨ ਕੇ ਕਿ ast ਮੋਡੀਊਲ ਦੇ ਸਾਰੇ ਮੈਂਬਰਾਂ ਨੂੰ ਦਾਇਰੇ ਵਿੱਚ ਲਿਆਂਦਾ ਗਿਆ ਹੈ।)

BinOp(
  left=Num(n=2),
  op=Add(),
  right=Num(n=3))

ਸਮੀਕਰਨ ਦਾ AST ਇੱਕ ਬਾਈਨਰੀ ਆਪਰੇਟਰ ਹੈ; ਇਸਦੇ ਤਿੰਨ ਬੱਚੇ ਹਨ, left, right ਅਤੇ op. ਦ left ਅਤੇ right ਸ਼ਾਬਦਿਕ ਨੰਬਰ ਹਨ; ਉਹਨਾਂ ਦਾ ਬੱਚਾ n ਉਸ ਨੰਬਰ ਦਾ ਮੁੱਲ ਹੈ। ਤੁਸੀਂ ਇਹ ਵਿਚਾਰ ਪ੍ਰਾਪਤ ਕਰੋ ਕਿ ਮੈਨੂੰ ਯਕੀਨ ਹੈ.

ਹਰੇਕ ਪਾਈਥਨ ਸਮੀਕਰਨ, ਸਟੇਟਮੈਂਟ, ਆਦਿ ਦਾ ਇੱਕ AST ਨੋਡ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਪਾਰਸਰ ਅਤੇ ਅਨਪਾਰਸਰ ਦੋਵਾਂ ਦੇ ਮਿਆਰੀ ਅਮਲ ਹਨ; ਤੁਸੀਂ ਟੈਕਸਟ ਨੂੰ AST ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ, AST ਨੂੰ ਟੈਕਸਟ ਵਿੱਚ ਵਾਪਸ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਉਸ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਕੰਪਾਇਲ ਅਤੇ ਚਲਾ ਸਕਦੇ ਹੋ।


ਅਗਲੀ ਵਾਰ FAIC ‘ਤੇ: ਮੈਂ ਪੈਟਰਨਾਂ/ਨਿਯਮਾਂ/ਕੰਬੀਨੇਟਰ ਸਿਸਟਮ ਦਾ ਸੰਖੇਪ ਵਰਣਨ ਕਰਾਂਗਾ, ਅਤੇ ਫਿਰ ਇਸ ਬਾਰੇ ਕੁਝ ਵਿਚਾਰ ਦੇਵਾਂਗਾ ਕਿ ਇਸ ਪਹੁੰਚ ਨੂੰ ਇੱਕ ਹੋਰ ਰਵਾਇਤੀ ਕੰਪਾਈਲਰ ਤਕਨੀਕ ਜਿਵੇਂ ਕਿ ਰੀਰਾਈਟਸ ਲਈ ਵਿਜ਼ਟਰ ਪੈਟਰਨ ਲਈ ਪ੍ਰੇਰਿਤ ਕੀਤਾ ਹੈ। ਫਿਰ ਅਸੀਂ ਪੈਟਰਨਾਂ ਅਤੇ ਅਨੁਮਾਨਾਂ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਨੂੰ ਦੇਖਣਾ ਸ਼ੁਰੂ ਕਰਾਂਗੇ।



Source link

Postagens Similares

  • పక్షుల పేర్లు, భాగం 4

    యూరోపియన్ స్టార్లింగ్ ఒక సుందరమైన పక్షి, అయితే ఇది ప్రాదేశికంగా, ధ్వనించే మరియు దూకుడుగా ఉంటుంది. దురదృష్టవశాత్తు, వారు ఉత్తర అమెరికాలో చాలా దూకుడుగా ఉన్నారు. ఇప్పుడు అమెరికాలో నివసిస్తున్న వందల మిలియన్ల యూరోపియన్ స్టార్లింగ్‌లలో చాలా మంది శీతాకాలంలో నా సూట్ ఫీడర్‌పై పోరాడుతున్నారు. కెస్ట్రెల్ గుర్తింపును పాటిస్తుంది అని మేము చివరిసారి చెప్పాము Kxy=x అన్ని పక్షులకు x మరియు వై అడవిలో. స్టార్లింగ్ కొంచెం సంక్లిష్టమైన గుర్తింపును కలిగి ఉంది: Sxyz=xz(yz). మళ్ళీ,…

  • கான்ஸ்டன்ஸ் குரோசியர்: s-வளைவுகளை முன்னறிவிப்பது கடினம்

    அட, நாங்கள் பாதியிலேயே வந்துவிட்டோமா? அடடா, S-வளைவில் வாழ்கிறேன் கோவிட் சகாப்தத்தின் பிரபலமான விளக்கப்படம் உள்ளது, அதைக் கண்டுபிடிக்க நான் எப்போதும் சிரமப்படுகிறேன், அதன் மூலம் வாழும் போது S வளைவை மதிப்பிடுவது எவ்வளவு கடினம் என்பதைக் காட்டுகிறது. ஆரம்ப நாட்களில் எல்லாம் ஒரு அதிவேகமாக வெடித்துக்கொண்டிருப்பதாகத் தெரிகிறது, மேலும் நீங்கள் எப்படி ஊமையாக இருக்கிறீர்கள் என்பதைப் பற்றி எப்பொழுதும் மிகைப்படுத்தப்பட்ட கட்டுரைகளைப் பெறுவீர்கள். பின்னர் விஷயங்கள் கண்ணுக்கு தெரியாத அறிகுறிகளைத் தாக்கியதால், வைரலான கட்டுரைகளை எழுதும்…

  • sphinxcontrib-sqltable 2.1.1 – corrección del cursor de base de datos · Doug Hellmann

    14 de mayo de 2024 sphinxcontrib-sqltable es una extensión de Sphinx que permite a los autores incrustar declaraciones SQL en documentos fuente y producir resultados tabulares en documentos renderizados. Detalles del proyecto 2.1.1 es PyPI ¿Qué hay de nuevo en 2.1.1? Accede al cursor antes de cerrar la conexión a la base de datos (contribuciones…

  • కఠినమైన ఆట తీసుకోండి మరియు దానిని చిన్నదిగా చేయండి

    శ్రద్ధాసక్తులు తగ్గిపోతున్నాయని మీకు ఖచ్చితంగా తెలుసు. YouTube -> షార్ట్‌లు, ఇన్‌స్టాగ్రామ్ రీల్స్, టిక్‌టాక్‌లు మొదలైనవి ప్రపంచాన్ని ఆక్రమించాయి. ఇది వాస్తవ ప్రపంచ వ్యాపార నమూనాలను ప్రభావితం చేస్తుందని మీకు తెలియకపోవచ్చు. హే, జూడ్, దానిని చెడ్డగా చేయవద్దు, ఒక విషాద గీతాన్ని తీయండి మరియు దానిని మెరుగుపరచండి, ఆమెను మీ హృదయంలోకి తీసుకురావాలని గుర్తుంచుకోండి, ఆపై మీరు దాన్ని మెరుగుపరచడం ప్రారంభించవచ్చు నేను కొన్ని IRL వ్యాపారాలు/అభిరుచులలో పునరావృతమయ్యే నమూనాను గమనించాను, అవి బాగా పని…

  • ایپل کے کل اعلانات کا سلیٹ

    ایپل نیوز روم پوسٹس: ایپل نے آئی فون 17 پرو اور آئی فون 17 پرو میکس کی نقاب کشائی کی آئی فون ایئر کو متعارف کرانا ، ایک کامیاب نیا آئی فون جس میں ایک پیشرفت ڈیزائن ہے ایپل نے آئی فون 17 کی شروعات کی ایپل نے ایپل واچ سیریز 11 کی شروعات کی…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *