Computer programming has been, largely, an intuitive activity.

ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮਿੰਗ, ਵੱਡੇ ਪੱਧਰ 'ਤੇ, ਇੱਕ ਅਨੁਭਵੀ ਗਤੀਵਿਧੀ ਰਹੀ ਹੈ।


Programmers are taught to understand programming in operational terms.

ਪ੍ਰੋਗਰਾਮਰਾਂ ਨੂੰ ਕਾਰਜਸ਼ੀਲ ਸ਼ਬਦਾਂ ਵਿੱਚ ਪ੍ਰੋਗਰਾਮਿੰਗ ਨੂੰ ਸਮਝਣਾ ਸਿਖਾਇਆ ਜਾਂਦਾ ਹੈ।


ਅਜਿਹੀਆਂ ਥਿਊਰੀਆਂ ਮਾਨਸਿਕ ਕੋਸ਼ਿਸ਼ ਨੂੰ ਘਟਾਉਂਦੀਆਂ ਹਨ।


They are as indispensable for their domains as calculus is for solving scientific and engineering problems.

ਉਹ ਆਪਣੇ ਖੇਤਰਾਂ ਲਈ ਓਨੇ ਹੀ ਜ਼ਰੂਰੀ ਹਨ ਜਿੰਨੇ ਕਿ ਵਿਗਿਆਨਕ ਅਤੇ ਇੰਜੀਨੀਅਰਿੰਗ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਕੈਲਕੂਲਸ।


I am attracted to effective theories primarily because they save labor.

ਮੈਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸਿਧਾਂਤਾਂ ਵੱਲ ਮੁੱਖ ਤੌਰ 'ਤੇ ਇਸ ਲਈ ਆਕਰਸ਼ਿਤ ਹਾਂ ਕਿਉਂਕਿ ਉਹ ਮਿਹਨਤ ਬਚਾਉਂਦੇ ਹਨ।


The original inspiration to design a computer science course which illustrates the applications of effective theories in practice came from Elaine Rich and J Moore.

ਕੰਪਿਊਟਰ ਵਿਗਿਆਨ ਕੋਰਸ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਨ ਦੀ ਅਸਲ ਪ੍ਰੇਰਣਾ ਜੋ ਅਭਿਆਸ ਵਿੱਚ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸਿਧਾਂਤਾਂ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ, ਐਲੇਨ ਰਿਚ ਅਤੇ ਜੇ ਮੂਰ ਤੋਂ ਆਈ ਸੀ।


I prepared a set of notes and taught the course in the Spring and Fall of 2003.

ਮੈਂ ਨੋਟਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਤਿਆਰ ਕੀਤਾ ਅਤੇ 2003 ਦੇ ਬਸੰਤ ਅਤੇ ਪਤਝੜ ਵਿੱਚ ਕੋਰਸ ਪੜ੍ਹਾਇਆ।


The choice of topics and the style of presentation are my own.

ਵਿਸ਼ਿਆਂ ਦੀ ਚੋਣ ਅਤੇ ਪੇਸ਼ਕਾਰੀ ਦੀ ਸ਼ੈਲੀ ਮੇਰੀ ਆਪਣੀ ਹੈ।


I have made no effort to be comprehensive.

ਮੈਂ ਵਿਆਪਕ ਹੋਣ ਦੀ ਕੋਈ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕੀਤੀ ਹੈ।


Greg Plaxton has used my original notes and made extensive revisions.

ਗ੍ਰੇਗ ਪਲੈਕਸਟਨ ਨੇ ਮੇਰੇ ਅਸਲ ਨੋਟਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ ਅਤੇ ਵਿਆਪਕ ਸੋਧਾਂ ਕੀਤੀਆਂ ਹਨ।


I am also grateful to the graduate teaching assistants, especially Thierry Joffrain, for helping me revise the notes.

ਮੈਂ ਗ੍ਰੈਜੂਏਟ ਟੀਚਿੰਗ ਸਹਾਇਕਾਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਥੀਏਰੀ ਜੋਫਰੈਨ ਦਾ ਵੀ ਧੰਨਵਾਦੀ ਹਾਂ, ਜਿਨ੍ਹਾਂ ਨੇ ਨੋਟਾਂ ਨੂੰ ਸੋਧਣ ਵਿੱਚ ਮੇਰੀ ਮਦਦ ਕੀਤੀ।


ਟੈਕਸਟ ਕੰਪ੍ਰੈਸ਼ਨ


ਹਫਮੈਨ ਕੋਡਿੰਗ


ਗਲਤੀ ਖੋਜ ਅਤੇ ਸੁਧਾਰ


ਛੋਟੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ


ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ


RAID ਆਰਕੀਟੈਕਚਰ


The Mariner 4 spacecraft sent photographs of Mars.

ਮੈਰੀਨਰ 4 ਪੁਲਾੜ ਯਾਨ ਨੇ ਮੰਗਲ ਗ੍ਰਹਿ ਦੀਆਂ ਤਸਵੀਰਾਂ ਭੇਜੀਆਂ।


Each pixel encoded 64 possible levels of brightness.

ਹਰ ਪਿਕਸਲ ਨੇ 64 ਸੰਭਾਵਿਤ ਪੱਧਰਾਂ ਦੀ ਚਮਕ ਨੂੰ ਏਨਕੋਡ ਕੀਤਾ।


The transmission rate was 16,200 bits per second.

ਪ੍ਰਸਾਰਣ ਦੀ ਦਰ 16,200 ਬਿੱਟ ਪ੍ਰਤੀ ਸਕਿੰਟ ਸੀ।


We study the simple Reed-Muller code employed by the later Mariners.

ਅਸੀਂ ਬਾਅਦ ਦੇ ਮੈਰੀਨਰਾਂ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਸਧਾਰਨ ਰੀਡ-ਮੁਲਰ ਕੋਡ ਦਾ ਅਧਿਐਨ ਕਰਦੇ ਹਾਂ।


The Hamming distance between any two distinct rows of Hn, n≥1, is 2n−1.

Hn, n≥1 ਦੀਆਂ ਕਿਸੇ ਵੀ ਦੋ ਵੱਖਰੀਆਂ ਕਤਾਰਾਂ ਵਿਚਕਾਰ ਹੈਮਿੰਗ ਦੂਰੀ 2n−1 ਹੈ।


Secure communication has been important for at least 2,500 years.

ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਘੱਟੋ-ਘੱਟ 2,500 ਸਾਲਾਂ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਰਿਹਾ ਹੈ।


Alice will encrypt the plaintext to create a ciphertext.

ਐਲਿਸ ਸਾਈਫਰ ਟੈਕਸਟ ਬਣਾਉਣ ਲਈ ਪਲੇਨਟੈਕਸਟ ਨੂੰ ਏਨਕ੍ਰਿਪਟ ਕਰੇਗੀ।


The goal of encryption and decryption is to make it hard for Eve to decrypt the ciphertext.

ਏਨਕ੍ਰਿਪਸ਼ਨ ਅਤੇ ਡੀਕ੍ਰਿਪਸ਼ਨ ਦਾ ਟੀਚਾ ਈਵ ਲਈ ਸਾਈਫਰ ਟੈਕਸਟ ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਨਾ ਮੁਸ਼ਕਲ ਬਣਾਉਣਾ ਹੈ।


When Alice and Bob share knowledge of the key, they are using a symmetric key system.

ਜਦੋਂ ਐਲਿਸ ਅਤੇ ਬੌਬ ਕੁੰਜੀ ਦਾ ਗਿਆਨ ਸਾਂਝਾ ਕਰਦੇ ਹਨ, ਤਾਂ ਉਹ ਇੱਕ ਸਮਮਿਤੀ ਕੁੰਜੀ ਪ੍ਰਣਾਲੀ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੁੰਦੇ ਹਨ।


Modern public key cryptography is asymmetric.

ਆਧੁਨਿਕ ਜਨਤਕ ਕੁੰਜੀ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਅਸਮਮਿਤੀ ਹੈ।


The communication medium is really not important.

ਸੰਚਾਰ ਮਾਧਿਅਮ ਅਸਲ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਨਹੀਂ ਹੈ।


Alice could write her message on a piece of paper and mail it physically.

ਐਲਿਸ ਆਪਣਾ ਸੁਨੇਹਾ ਕਾਗਜ਼ ਦੇ ਟੁਕੜੇ 'ਤੇ ਲਿਖ ਸਕਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਸਰੀਰਕ ਤੌਰ 'ਤੇ ਡਾਕ ਰਾਹੀਂ ਭੇਜ ਸਕਦੀ ਹੈ।


Some of the earliest efforts simply scrambled the letters of the plaintext.

ਕੁਝ ਸ਼ੁਰੂਆਤੀ ਕੋਸ਼ਿਸ਼ਾਂ ਨੇ ਸਿਰਫ਼ ਪਲੇਨਟੈਕਸਟ ਦੇ ਅੱਖਰਾਂ ਨੂੰ ਸਕ੍ਰੈੰਬਲ ਕੀਤਾ।


ਇਸਨੂੰ ਇੱਕ ਟ੍ਰਾਂਸਪੋਜ਼ੀਸ਼ਨ ਸਾਈਫਰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।


Since there are n! permutations of n symbols it may seem impossible for even a computer to do a brute-force search.

ਕਿਉਂਕਿ n ਪ੍ਰਤੀਕਾਂ ਦੇ n! ਪਰਮੂਟੇਸ਼ਨ ਹਨ, ਇਸ ਲਈ ਇਹ ਲੱਗਦਾ ਹੈ ਕਿ ਇੱਕ ਕੰਪਿਊਟਰ ਲਈ ਵੀ ਬ੍ਰੂਟ-ਫੋਰਸ ਖੋਜ ਕਰਨਾ ਅਸੰਭਵ ਹੈ।


A substitution cypher replaces a symbol by another symbol.

ਇੱਕ ਸਬਸਟੀਟਿਊਸ਼ਨ ਸਾਈਫਰ ਇੱਕ ਪ੍ਰਤੀਕ ਨੂੰ ਦੂਜੇ ਪ੍ਰਤੀਕ ਨਾਲ ਬਦਲਦਾ ਹੈ।


Julius Caesar used a very simple form of substitution.

ਜੂਲੀਅਸ ਸੀਜ਼ਰ ਨੇ ਸਬਸਟੀਟਿਊਸ਼ਨ ਦਾ ਇੱਕ ਬਹੁਤ ਹੀ ਸਧਾਰਨ ਰੂਪ ਵਰਤਿਆ।


Caesar shift cypher is very easy to break.

ਸੀਜ਼ਰ ਸ਼ਿਫਟ ਸਾਈਫਰ ਨੂੰ ਤੋੜਨਾ ਬਹੁਤ ਆਸਾਨ ਹੈ।


Cryptanalysis is the name given to unscrambling an intercepted message.

ਕ੍ਰਿਪਟੈਨਾਲਿਸਿਸ ਇੱਕ ਰੋਕੂ ਸੁਨੇਹੇ ਨੂੰ ਅਨਸਕ੍ਰੈੰਬਲ ਕਰਨ ਦਾ ਨਾਮ ਹੈ।


For electronic transmissions, the encryption and decryption can be considerably more elaborate.

ਇਲੈਕਟ੍ਰਾਨਿਕ ਪ੍ਰਸਾਰਣ ਲਈ, ਏਨਕ੍ਰਿਪਸ਼ਨ ਅਤੇ ਡੀਕ੍ਰਿਪਸ਼ਨ ਕਾਫ਼ੀ ਜ਼ਿਆਦਾ ਵਿਸਤ੍ਰਿਤ ਹੋ ਸਕਦੇ ਹਨ।


Data compression is useful and necessary in a variety of applications.

ਡੇਟਾ ਕੰਪ੍ਰੈਸ਼ਨ ਕਈ ਤਰ੍ਹਾਂ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਅਤੇ ਜ਼ਰੂਰੀ ਹੈ।


These applications can be broadly divided into two groups: transmission and storage.

ਇਹਨਾਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਦੋ ਸਮੂਹਾਂ ਵਿੱਚ ਵੰਡਿਆ ਜਾ ਸਕਦਾ ਹੈ: ਪ੍ਰਸਾਰਣ ਅਤੇ ਸਟੋਰੇਜ।


Compression reduces the number of bits to be transmitted, thus making the transmission process more efficient.

ਕੰਪ੍ਰੈਸ਼ਨ ਪ੍ਰਸਾਰਿਤ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਬਿੱਟਾਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ, ਇਸ ਤਰ੍ਹਾਂ ਪ੍ਰਸਾਰਣ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਵਧੇਰੇ ਕੁਸ਼ਲ ਬਣਾਉਂਦਾ ਹੈ।


Storing a file in a compressed form typically requires fewer bits, thus utilizing storage resources more efficiently.

ਇੱਕ ਫਾਈਲ ਨੂੰ ਸੰਕੁਚਿਤ ਰੂਪ ਵਿੱਚ ਸਟੋਰ ਕਰਨ ਲਈ ਆਮ ਤੌਰ 'ਤੇ ਘੱਟ ਬਿੱਟਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਤਰ੍ਹਾਂ ਸਟੋਰੇਜ ਸਰੋਤਾਂ ਦੀ ਵਧੇਰੇ ਕੁਸ਼ਲਤਾ ਨਾਲ ਵਰਤੋਂ ਹੁੰਦੀ ਹੈ।


Data compression can be applied to any kind of data: text, image, audio and video.

ਡੇਟਾ ਕੰਪ੍ਰੈਸ਼ਨ ਨੂੰ ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਦੇ ਡੇਟਾ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ: ਟੈਕਸਟ, ਚਿੱਤਰ, ਆਡੀਓ ਅਤੇ ਵੀਡੀਓ।


A 1-second video without compression takes around 20 megabytes.

ਬਿਨਾਂ ਕੰਪ੍ਰੈਸ਼ਨ ਦੇ 1-ਸਕਿੰਟ ਦੀ ਵੀਡੀਓ ਲਗਭਗ 20 ਮੈਗਾਬਾਈਟ ਲੈਂਦੀ ਹੈ।


Impressive gains can be made by compressing video.

ਵੀਡੀਓ ਨੂੰ ਕੰਪ੍ਰੈਸ ਕਰਕੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਲਾਭ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।


Real-time video transmission would be impossible without considerable compression.

ਬਹੁਤ ਜ਼ਿਆਦਾ ਕੰਪ੍ਰੈਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਰੀਅਲ-ਟਾਈਮ ਵੀਡੀਓ ਪ੍ਰਸਾਰਣ ਅਸੰਭਵ ਹੋਵੇਗਾ।


There are several new applications that generate data at prodigious rates.

ਇੱਥੇ ਕਈ ਨਵੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਹਨ ਜੋ ਬਹੁਤ ਤੇਜ਼ ਰਫ਼ਤਾਰ ਨਾਲ ਡੇਟਾ ਤਿਆਰ ਕਰਦੀਆਂ ਹਨ।


Certain earth orbiting satellites create around half a terabyte of data per day.

ਕੁਝ ਧਰਤੀ ਦੀ ਪਰਿਕਰਮਾ ਕਰਨ ਵਾਲੇ ਉਪਗ੍ਰਹਿ ਪ੍ਰਤੀ ਦਿਨ ਲਗਭਗ ਅੱਧਾ ਟੈਰਾਬਾਈਟ ਡੇਟਾ ਬਣਾਉਂਦੇ ਹਨ।


Without compression there is no hope of storing such large files.

ਕੰਪ੍ਰੈਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਅਜਿਹੀਆਂ ਵੱਡੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦੀ ਕੋਈ ਉਮੀਦ ਨਹੀਂ ਹੈ।


ਨੁਕਸਾਨਦਾਇਕ ਅਤੇ ਨੁਕਸਾਨ ਰਹਿਤ ਕੰਪ੍ਰੈਸ਼ਨ


Most data types, except text, are compressed in such a way that a very good approximation can be recovered.

ਜ਼ਿਆਦਾਤਰ ਡੇਟਾ ਕਿਸਮਾਂ, ਟੈਕਸਟ ਨੂੰ ਛੱਡ ਕੇ, ਇਸ ਤਰੀਕੇ ਨਾਲ ਕੰਪ੍ਰੈਸ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਕਿ ਇੱਕ ਬਹੁਤ ਵਧੀਆ ਅੰਦਾਜ਼ਾ ਮੁੜ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


Text transmissions are required to be lossless.

ਟੈਕਸਟ ਪ੍ਰਸਾਰਣ ਨੂੰ ਨੁਕਸਾਨ ਰਹਿਤ ਹੋਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।


It will be a disaster to change even a single symbol in a text file.

ਇੱਕ ਟੈਕਸਟ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਵੀ ਪ੍ਰਤੀਕ ਨੂੰ ਬਦਲਣਾ ਇੱਕ ਤਬਾਹੀ ਹੋਵੇਗੀ।


In this note, we study several lossless compression schemes for text files.

ਇਸ ਨੋਟ ਵਿੱਚ, ਅਸੀਂ ਟੈਕਸਟ ਫਾਈਲਾਂ ਲਈ ਕਈ ਨੁਕਸਾਨ ਰਹਿਤ ਕੰਪ੍ਰੈਸ਼ਨ ਸਕੀਮਾਂ ਦਾ ਅਧਿਐਨ ਕਰਦੇ ਹਾਂ।


Henceforth, we use the terms string and text file synonymously.

ਇਸ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਸ਼ਬਦ ਸਤਰ ਅਤੇ ਟੈਕਸਟ ਫਾਈਲ ਨੂੰ ਸਮਾਨਾਰਥੀ ਰੂਪ ਵਿੱਚ ਵਰਤਦੇ ਹਾਂ।


Error detection and correction can be applied to uncompressed as well as compressed strings.

ਗਲਤੀ ਖੋਜ ਅਤੇ ਸੁਧਾਰ ਨੂੰ ਗੈਰ-ਸੰਕੁਚਿਤ ਅਤੇ ਨਾਲ ਹੀ ਸੰਕੁਚਿਤ ਸਤਰਾਂ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


What is the typical level of compression?

ਕੰਪ੍ਰੈਸ਼ਨ ਦਾ ਆਮ ਪੱਧਰ ਕੀ ਹੈ?


The amount by which a text string can be compressed depends on the string itself.

ਇੱਕ ਟੈਕਸਟ ਸਤਰ ਨੂੰ ਜਿਸ ਮਾਤਰਾ ਵਿੱਚ ਕੰਪ੍ਰੈਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਉਹ ਸਤਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।


The final state, where all piles are empty, is a losing state.

ਅੰਤਿਮ ਅਵਸਥਾ, ਜਿੱਥੇ ਸਾਰੇ ਢੇਰ ਖਾਲੀ ਹਨ, ਇੱਕ ਹਾਰਨ ਵਾਲੀ ਅਵਸਥਾ ਹੈ।


A player in a losing state will definitely lose provided his opponent makes the right moves.

ਇੱਕ ਹਾਰਨ ਵਾਲੀ ਅਵਸਥਾ ਵਿੱਚ ਖਿਡਾਰੀ ਨਿਸ਼ਚਤ ਤੌਰ 'ਤੇ ਹਾਰ ਜਾਵੇਗਾ ਜੇਕਰ ਉਸਦਾ ਵਿਰੋਧੀ ਸਹੀ ਚਾਲਾਂ ਚੱਲਦਾ ਹੈ।


So, one of the players has a winning strategy based on the initial state.

ਇਸ ਲਈ, ਖਿਡਾਰੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਕੋਲ ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ ਦੇ ਅਧਾਰ 'ਤੇ ਜਿੱਤਣ ਦੀ ਰਣਨੀਤੀ ਹੈ।


A player in a winning state has at least one move to transform the state to losing.

ਇੱਕ ਜਿੱਤਣ ਵਾਲੀ ਅਵਸਥਾ ਵਿੱਚ ਖਿਡਾਰੀ ਕੋਲ ਸਥਿਤੀ ਨੂੰ ਹਾਰਨ ਵਿੱਚ ਬਦਲਣ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਚਾਲ ਹੈ।


Let the exclusive-or of the remaining piles be s.

ਬਾਕੀ ਬਚੇ ਢੇਰਾਂ ਦਾ ਐਕਸਕਲੂਸਿਵ-ਔਰ s ਹੋਣ ਦਿਓ।


The winning move is to replace x by x⊕u.

ਜਿੱਤਣ ਵਾਲੀ ਚਾਲ x ਨੂੰ x⊕u ਨਾਲ ਬਦਲਣਾ ਹੈ।


The problem in secure communication is for a sender to send a message to a receiver so that no eavesdropper can read the message during transmission.

ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਵਿੱਚ ਸਮੱਸਿਆ ਇੱਕ ਭੇਜਣ ਵਾਲੇ ਲਈ ਇੱਕ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤਕਰਤਾ ਨੂੰ ਭੇਜਣਾ ਹੈ ਤਾਂ ਜੋ ਕੋਈ ਵੀ ਸੁਣਨ ਵਾਲਾ ਪ੍ਰਸਾਰਣ ਦੌਰਾਨ ਸੁਨੇਹੇ ਨੂੰ ਨਾ ਪੜ੍ਹ ਸਕੇ।


In most cases, the sender and the receiver agree on a transmission protocol.

ਜ਼ਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਭੇਜਣ ਵਾਲਾ ਅਤੇ ਪ੍ਰਾਪਤਕਰਤਾ ਇੱਕ ਪ੍ਰਸਾਰਣ ਪ੍ਰੋਟੋਕੋਲ 'ਤੇ ਸਹਿਮਤ ਹੁੰਦੇ ਹਨ।


The sender first converts the message to be sent to a bit string.

ਭੇਜਣ ਵਾਲਾ ਪਹਿਲਾਂ ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਸੁਨੇਹੇ ਨੂੰ ਇੱਕ ਬਿੱਟ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਬਦਲਦਾ ਹੈ।


For encryption, the sender and the receiver agree on a key k.

ਇਨਕ੍ਰਿਪਸ਼ਨ ਲਈ, ਭੇਜਣ ਵਾਲਾ ਅਤੇ ਪ੍ਰਾਪਤਕਰਤਾ ਇੱਕ ਕੁੰਜੀ k 'ਤੇ ਸਹਿਮਤ ਹੁੰਦੇ ਹਨ।


An eavesdropper can only see y which appears as pure gibberish.

ਇੱਕ ਸੁਣਨ ਵਾਲਾ ਸਿਰਫ਼ y ਦੇਖ ਸਕਦਾ ਹੈ ਜੋ ਸ਼ੁੱਧ ਗਿਬਰਿਸ਼ ਵਾਂਗ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।


This communication scheme is simple to program.

ਇਹ ਸੰਚਾਰ ਸਕੀਮ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਲਈ ਸਧਾਰਨ ਹੈ।


Any party who has the key can decode the message.

ਕੋਈ ਵੀ ਧਿਰ ਜਿਸ ਕੋਲ ਕੁੰਜੀ ਹੈ, ਸੁਨੇਹੇ ਨੂੰ ਡੀਕੋਡ ਕਰ ਸਕਦੀ ਹੈ।


ਐਲਿਸ ਕੋਲ ਦੋ ਡਾਟਾ ਟੁਕੜੇ ਹਨ m0 ਅਤੇ m1।


Bob requests one of these data from Alice.

ਬੌਬ ਐਲਿਸ ਤੋਂ ਇਹਨਾਂ ਡੇਟਾ ਵਿੱਚੋਂ ਇੱਕ ਦੀ ਬੇਨਤੀ ਕਰਦਾ ਹੈ।


The restriction is that Alice should not know which data has been requested.

ਪਾਬੰਦੀ ਇਹ ਹੈ ਕਿ ਐਲਿਸ ਨੂੰ ਇਹ ਨਹੀਂ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਡੇਟਾ ਮੰਗਿਆ ਗਿਆ ਹੈ।


We solve the problem using a trusted third party, Charles.

ਅਸੀਂ ਇੱਕ ਭਰੋਸੇਯੋਗ ਤੀਜੀ ਧਿਰ, ਚਾਰਲਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕਰਦੇ ਹਾਂ।


Imagine that the database is a matrix of bits.

ਕਲਪਨਾ ਕਰੋ ਕਿ ਡਾਟਾਬੇਸ ਬਿੱਟਾਂ ਦਾ ਇੱਕ ਮੈਟ੍ਰਿਕਸ ਹੈ।


Message transmission is vulnerable to noise, which may cause portions of a message to be altered.

ਸੁਨੇਹਾ ਪ੍ਰਸਾਰਣ ਰੌਲੇ-ਰੱਪੇ ਦਾ ਸ਼ਿਕਾਰ ਹੁੰਦਾ ਹੈ, ਜੋ ਸੁਨੇਹੇ ਦੇ ਹਿੱਸਿਆਂ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ।


The sender appends a bit at the end of each block so that each 4-bit block has an even number of 1s.

ਭੇਜਣ ਵਾਲਾ ਹਰੇਕ ਬਲਾਕ ਦੇ ਅੰਤ ਵਿੱਚ ਇੱਕ ਬਿੱਟ ਜੋੜਦਾ ਹੈ ਤਾਂ ਜੋ ਹਰੇਕ 4-ਬਿੱਟ ਬਲਾਕ ਵਿੱਚ 1 ਦੀ ਇੱਕ ਸਮਾਨ ਸੰਖਿਆ ਹੋਵੇ।


The sender scans the text from left to right identifying certain strings.

ਭੇਜਣ ਵਾਲਾ ਟੈਕਸਟ ਨੂੰ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਪਾਸੇ ਸਕੈਨ ਕਰਦਾ ਹੈ, ਕੁਝ ਸਤਰਾਂ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ।


Lempel-Ziv coding does not require the frequencies to be known a priori.

ਲੈਂਪਲ-ਜ਼ਿਵ ਕੋਡਿੰਗ ਲਈ ਪਹਿਲਾਂ ਤੋਂ ਬਾਰੰਬਾਰਤਾਵਾਂ ਜਾਣਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।


The sender adds this word to the dictionary, and assigns it the next higher index, 4.

ਭੇਜਣ ਵਾਲਾ ਇਸ ਸ਼ਬਦ ਨੂੰ ਡਿਕਸ਼ਨਰੀ ਵਿੱਚ ਜੋੜਦਾ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਅਗਲਾ ਉੱਚਾ ਸੂਚਕਾਂਕ, 4 ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।


The receiver recreates the string taa, by loooking up the word with index 3 and appending ato it.

ਪ੍ਰਾਪਤਕਰਤਾ ਸਤਰ taa ਨੂੰ ਮੁੜ ਬਣਾਉਂਦਾ ਹੈ, ਸੂਚਕਾਂਕ 3 ਵਾਲੇ ਸ਼ਬਦ ਨੂੰ ਦੇਖ ਕੇ ਅਤੇ ਇਸ ਵਿੱਚ a ਜੋੜ ਕੇ।


Initially, the dictionary has a single word, the empty string, <> , as its only (0th) entry.

ਸ਼ੁਰੂ ਵਿੱਚ, ਡਿਕਸ਼ਨਰੀ ਵਿੱਚ ਇੱਕੋ ਸ਼ਬਦ ਹੁੰਦਾ ਹੈ, ਖਾਲੀ ਸਤਰ, <>, ਇਸਦੇ ਇਕਲੌਤੇ (0ਵੇਂ) ਪ੍ਰਵੇਸ਼ ਵਜੋਂ।


To ensure that the sender can always find a word which is not in the dictionary, assume that the end of the file, written as #, occurs nowhere else in the string.

ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਭੇਜਣ ਵਾਲਾ ਹਮੇਸ਼ਾ ਇੱਕ ਸ਼ਬਦ ਲੱਭ ਸਕਦਾ ਹੈ ਜੋ ਡਿਕਸ਼ਨਰੀ ਵਿੱਚ ਨਹੀਂ ਹੈ, ਮੰਨ ਲਓ ਕਿ ਫਾਈਲ ਦਾ ਅੰਤ, # ਦੇ ਰੂਪ ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ, ਸਤਰ ਵਿੱਚ ਕਿਤੇ ਵੀ ਨਹੀਂ ਹੁੰਦਾ।


In the small example shown above, there is hardly any compression.

ਉੱਪਰ ਦਿਖਾਏ ਗਏ ਛੋਟੇ ਜਿਹੇ ਉਦਾਹਰਣ ਵਿੱਚ, ਸ਼ਾਇਦ ਹੀ ਕੋਈ ਕੰਪਰੈਸ਼ਨ ਹੈ।


Lempel-Ziv coding is asymptotically optimal, i.e., as the text length tends to infinity, the compression tends to the optimal value predicted by information theory.

ਲੈਂਪਲ-ਜ਼ਿਵ ਕੋਡਿੰਗ ਅਸਮਪਟੋਟਿਕ ਤੌਰ 'ਤੇ ਅਨੁਕੂਲ ਹੈ, ਭਾਵ, ਜਿਵੇਂ ਕਿ ਟੈਕਸਟ ਦੀ ਲੰਬਾਈ ਅਨੰਤਤਾ ਵੱਲ ਜਾਂਦੀ ਹੈ, ਕੰਪਰੈਸ਼ਨ ਜਾਣਕਾਰੀ ਸਿਧਾਂਤ ਦੁਆਰਾ ਪੂਰਵ-ਅਨੁਮਾਨਿਤ ਅਨੁਕੂਲ ਮੁੱਲ ਵੱਲ ਜਾਂਦਾ ਹੈ।


In practice, the dictionary is limited to a fixed size, like 4096 (so that each index can be encoded in 12 bits).

ਅਮਲ ਵਿੱਚ, ਡਿਕਸ਼ਨਰੀ ਇੱਕ ਨਿਸ਼ਚਿਤ ਆਕਾਰ ਤੱਕ ਸੀਮਤ ਹੈ, ਜਿਵੇਂ ਕਿ 4096 (ਇਸ ਲਈ ਹਰੇਕ ਸੂਚਕਾਂਕ ਨੂੰ 12 ਬਿੱਟਾਂ ਵਿੱਚ ਏਨਕੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ)।


Many popular compression programs —Unix utility “compress”, “gzip”, Windows “Winzip”— are based on some variant of the Lempel-Ziv algorithm.

ਬਹੁਤ ਸਾਰੇ ਪ੍ਰਸਿੱਧ ਕੰਪਰੈਸ਼ਨ ਪ੍ਰੋਗਰਾਮ —Unix ਉਪਯੋਗਤਾ “compress”, “gzip”, Windows “Winzip”— ਲੈਂਪਲ-ਜ਼ਿਵ ਐਲਗੋਰਿਦਮ ਦੇ ਕੁਝ ਰੂਪ 'ਤੇ ਅਧਾਰਤ ਹਨ।


We develop a data structure to imple- ment the dictionary and the two operations on it.

ਅਸੀਂ ਡਿਕਸ਼ਨਰੀ ਅਤੇ ਇਸ 'ਤੇ ਦੋ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਇੱਕ ਡਾਟਾ ਢਾਂਚਾ ਵਿਕਸਤ ਕਰਦੇ ਹਾਂ।


The data structure is a special kind of tree (sometimes called a “trie”).

ਡਾਟਾ ਢਾਂਚਾ ਇੱਕ ਖਾਸ ਕਿਸਮ ਦਾ ਰੁੱਖ ਹੈ (ਕਈ ਵਾਰ “ਟ੍ਰਾਈ” ਕਿਹਾ ਜਾਂਦਾ ਹੈ)।


Associated with each node of the tree is a word of the dictionary and its index.

ਰੁੱਖ ਦੇ ਹਰੇਕ ਨੋਡ ਨਾਲ ਡਿਕਸ਼ਨਰੀ ਦਾ ਇੱਕ ਸ਼ਬਦ ਅਤੇ ਇਸਦਾ ਸੂਚਕਾਂਕ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ।


The root node has the word <> (empty string) and index 0 associated with it.

ਰੂਟ ਨੋਡ ਵਿੱਚ ਸ਼ਬਦ <> (ਖਾਲੀ ਸਤਰ) ਅਤੇ ਸੂਚਕਾਂਕ 0 ਇਸ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ।


Given a text string, the sender starts matching its symbols against the sym- bols at the branches, starting at the root node.

ਇੱਕ ਟੈਕਸਟ ਸਤਰ ਦਿੱਤੇ ਜਾਣ 'ਤੇ, ਭੇਜਣ ਵਾਲਾ ਰੂਟ ਨੋਡ ਤੋਂ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ, ਸ਼ਾਖਾਵਾਂ 'ਤੇ ਪ੍ਰਤੀਕਾਂ ਦੇ ਵਿਰੁੱਧ ਆਪਣੇ ਪ੍ਰਤੀਕਾਂ ਦਾ ਮੇਲ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।


The receiver does not need to maintain the tree.

ਪ੍ਰਾਪਤਕਰਤਾ ਨੂੰ ਰੁੱਖ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।


The tree shown in Figure 1.6 results from the string taccagtaccagtaccacta#.

ਚਿੱਤਰ 1.6 ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਰੁੱਖ ਸਤਰ taccagtaccagtaccacta# ਤੋਂ ਨਤੀਜਾ ਹੈ।


First, we study the logical operator exclusive-or, which plays a central role in error detection and correction.

ਪਹਿਲਾਂ, ਅਸੀਂ ਤਰਕਸ਼ੀਲ ਓਪਰੇਟਰ ਐਕਸਕਲੂਸਿਵ-ਆਰ ਦਾ ਅਧਿਐਨ ਕਰਦੇ ਹਾਂ, ਜੋ ਗਲਤੀ ਖੋਜ ਅਤੇ ਸੁਧਾਰ ਵਿੱਚ ਇੱਕ ਕੇਂਦਰੀ ਭੂਮਿਕਾ ਅਦਾ ਕਰਦਾ ਹੈ।


The operator is written as ⊕ in these notes.

ਇਹਨਾਂ ਨੋਟਾਂ ਵਿੱਚ ਓਪਰੇਟਰ ਨੂੰ ⊕ ਵਜੋਂ ਲਿਖਿਆ ਗਿਆ ਹੈ।


In all cases, we apply ⊕ to bit strings of equal lengths, which we call words.

ਸਾਰੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਅਸੀਂ ⊕ ਨੂੰ ਬਰਾਬਰ ਲੰਬਾਈ ਦੀਆਂ ਬਿੱਟ ਸਤਰਾਂ 'ਤੇ ਲਾਗੂ ਕਰਦੇ ਹਾਂ, ਜਿਸਨੂੰ ਅਸੀਂ ਸ਼ਬਦ ਕਹਿੰਦੇ ਹਾਂ।


The algorithm is used to compute the greatest common divisor of two numbers.

ਇਹ ਐਲਗੋਰਿਦਮ ਦੋ ਸੰਖਿਆਵਾਂ ਦੇ ਸਭ ਤੋਂ ਵੱਡੇ ਸਾਂਝੇ ਗੁਣਜ ਨੂੰ ਕੱਢਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


Public key cryptography is a cornerstone of modern secure communication.

ਜਨਤਕ ਕੁੰਜੀ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਆਧੁਨਿਕ ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਦਾ ਇੱਕ ਅਹਿਮ ਹਿੱਸਾ ਹੈ।


The RSA scheme relies on the difficulty of factoring large numbers.

RSA ਸਕੀਮ ਵੱਡੀਆਂ ਸੰਖਿਆਵਾਂ ਨੂੰ ਗੁਣਨਖੰਡ ਕਰਨ ਦੀ ਮੁਸ਼ਕਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।


Encryption protects sensitive data from unauthorized access.

ਐਨਕ੍ਰਿਪਸ਼ਨ ਅਣਅਧਿਕਾਰਤ ਪਹੁੰਚ ਤੋਂ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਦੀ ਰੱਖਿਆ ਕਰਦੀ ਹੈ।


Digital signatures ensure the authenticity of electronic documents.

ਡਿਜੀਟਲ ਦਸਤਖਤ ਇਲੈਕਟ੍ਰਾਨਿਕ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ।


The extended Euclidean algorithm is used to find the modular inverse.

ਵਿਸਤ੍ਰਿਤ ਯੂਕਲਿਡ ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਮਾਡਯੂਲਰ ਇਨਵਰਸ ਨੂੰ ਲੱਭਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


A prime number is only divisible by 1 and itself.

ਇੱਕ ਪ੍ਰਾਈਮ ਨੰਬਰ ਸਿਰਫ਼ 1 ਅਤੇ ਆਪਣੇ ਆਪ ਨਾਲ ਭਾਗਯੋਗ ਹੁੰਦਾ ਹੈ।


The Diffie-Hellman key exchange allows two parties to establish a shared secret.

ਡਿਫੀ-ਹੈਲਮੈਨ ਕੁੰਜੀ ਐਕਸਚੇਂਜ ਦੋ ਧਿਰਾਂ ਨੂੰ ਇੱਕ ਸਾਂਝਾ ਭੇਦ ਸਥਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Block ciphers encrypt data in fixed-size blocks.

ਬਲਾਕ ਸਾਈਫਰ ਨਿਸ਼ਚਿਤ ਆਕਾਰ ਦੇ ਬਲਾਕਾਂ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰਦੇ ਹਨ।


ਸਟ੍ਰੀਮ ਸਾਈਫਰ ਡੇਟਾ ਨੂੰ ਬਿੱਟ ਦੁਆਰਾ ਬਿੱਟ ਐਨਕ੍ਰਿਪਟ ਕਰਦੇ ਹਨ।


The security of a system depends on the strength of its keys.

ਇੱਕ ਸਿਸਟਮ ਦੀ ਸੁਰੱਖਿਆ ਇਸਦੀਆਂ ਕੁੰਜੀਆਂ ਦੀ ਤਾਕਤ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।


Factoring large numbers is computationally difficult.

ਵੱਡੀਆਂ ਸੰਖਿਆਵਾਂ ਨੂੰ ਗੁਣਨਖੰਡ ਕਰਨਾ ਗਣਨਾਤਮਕ ਤੌਰ 'ਤੇ ਮੁਸ਼ਕਲ ਹੈ।


A trusted third party can help with key exchange.

ਇੱਕ ਭਰੋਸੇਯੋਗ ਤੀਜੀ ਧਿਰ ਕੁੰਜੀ ਐਕਸਚੇਂਜ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀ ਹੈ।


The modulus operation is fundamental in modular arithmetic.

ਮਾਡਯੂਲਸ ਓਪਰੇਸ਼ਨ ਮਾਡਯੂਲਰ ਅੰਕਗਣਿਤ ਵਿੱਚ ਬੁਨਿਆਦੀ ਹੈ।


The RSA algorithm is widely used for secure communication.

RSA ਐਲਗੋਰਿਦਮ ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਲਈ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


Encryption is essential for protecting online transactions.

ਔਨਲਾਈਨ ਲੈਣ-ਦੇਣ ਦੀ ਸੁਰੱਖਿਆ ਲਈ ਐਨਕ੍ਰਿਪਸ਼ਨ ਜ਼ਰੂਰੀ ਹੈ।


ਨਿੱਜੀ ਕੁੰਜੀ ਨੂੰ ਗੁਪਤ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।


Public key infrastructure manages digital certificates.

ਜਨਤਕ ਕੁੰਜੀ ਬੁਨਿਆਦੀ ਢਾਂਚਾ ਡਿਜੀਟਲ ਸਰਟੀਫਿਕੇਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ।


Hashing functions create unique fingerprints of data.

ਹੈਸ਼ਿੰਗ ਫੰਕਸ਼ਨ ਡੇਟਾ ਦੀਆਂ ਵਿਲੱਖਣ ਫਿੰਗਰਪ੍ਰਿੰਟਸ ਬਣਾਉਂਦੇ ਹਨ।


Cryptography is the practice and study of techniques for secure communication in the presence of third parties.

ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਤੀਜੀ ਧਿਰਾਂ ਦੀ ਮੌਜੂਦਗੀ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਲਈ ਤਕਨੀਕਾਂ ਦਾ ਅਭਿਆਸ ਅਤੇ ਅਧਿਐਨ ਹੈ।


Alice sends a public key to Bob which Bob uses to send her a secret.

ਐਲਿਸ ਬੌਬ ਨੂੰ ਇੱਕ ਜਨਤਕ ਕੁੰਜੀ ਭੇਜਦੀ ਹੈ, ਜਿਸਦੀ ਵਰਤੋਂ ਬੌਬ ਉਸਨੂੰ ਇੱਕ ਗੁਪਤ ਭੇਜਣ ਲਈ ਕਰਦਾ ਹੈ।


Using RSA, only Alice can decrypt it, and Bob already knows the secret.

RSA ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਸਿਰਫ਼ ਐਲਿਸ ਹੀ ਇਸਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਬੌਬ ਪਹਿਲਾਂ ਹੀ ਗੁਪਤ ਜਾਣਦਾ ਹੈ।


They can then employ the secret for further communications.

ਫਿਰ ਉਹ ਅੱਗੇ ਦੀਆਂ ਗੱਲਬਾਤਾਂ ਲਈ ਗੁਪਤ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਨ।


Alice and Bob publicly settle on two positive integers gand p.

ਐਲਿਸ ਅਤੇ ਬੌਬ ਜਨਤਕ ਤੌਰ 'ਤੇ ਦੋ ਸਕਾਰਾਤਮਕ ਪੂਰਨ ਅੰਕਾਂ g ਅਤੇ p 'ਤੇ ਸਹਿਮਤ ਹੁੰਦੇ ਹਨ।


Here, p is a prime number; typically p is large.

ਇੱਥੇ, p ਇੱਕ ਅਭਾਜ ਸੰਖਿਆ ਹੈ; ਆਮ ਤੌਰ 'ਤੇ p ਵੱਡਾ ਹੁੰਦਾ ਹੈ।


This means g k mod p ≠ 1, for any k, k < p-1.

ਇਸਦਾ ਮਤਲਬ ਹੈ g k mod p ≠ 1, ਕਿਸੇ ਵੀ k, k < p-1 ਲਈ।


Alice and Bob privately choose integers a and b which are less than p.

ਐਲਿਸ ਅਤੇ ਬੌਬ ਗੁਪਤ ਰੂਪ ਵਿੱਚ ਪੂਰਨ ਅੰਕ a ਅਤੇ b ਚੁਣਦੇ ਹਨ ਜੋ p ਤੋਂ ਘੱਟ ਹਨ।


Alice sends g a mod p and Bob sends g b mod p.

ਐਲਿਸ g a mod p ਭੇਜਦੀ ਹੈ ਅਤੇ ਬੌਬ g b mod p ਭੇਜਦਾ ਹੈ।


Then Alice computes (g b mod p) a mod p.

ਫਿਰ ਐਲਿਸ (g b mod p) a mod p ਦੀ ਗਣਨਾ ਕਰਦੀ ਹੈ।


Similarly, Bob computes (g a mod p) b mod p = g ab mod p.

ਇਸੇ ਤਰ੍ਹਾਂ, ਬੌਬ (g a mod p) b mod p = g ab mod p ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ।


They both have g ab mod p, and they settle on that as the secret key.

ਉਹਨਾਂ ਦੋਵਾਂ ਕੋਲ g ab mod p ਹੈ, ਅਤੇ ਉਹ ਉਸਨੂੰ ਗੁਪਤ ਕੁੰਜੀ ਵਜੋਂ ਸਥਾਪਤ ਕਰਦੇ ਹਨ।


ਇੱਕ ਉਦਾਹਰਣ ਵਜੋਂ, ਮੰਨ ਲਓ g = 3 ਅਤੇ p = 17।


Verify that g is a 16th primitive root of 1.

ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ g 1 ਦਾ 16ਵਾਂ ਮੁੱਢਲਾ ਰੂਟ ਹੈ।


Let Alice choose a = 5 and Bob choose b = 9.

ਐਲਿਸ ਨੂੰ a = 5 ਅਤੇ ਬੌਬ ਨੂੰ b = 9 ਚੁਣਨ ਦਿਓ।


Then, Alice and Bob send to each other 3 5 mod 17 = 5 and 3 9 mod 17 = 14, respectively.

ਫਿਰ, ਐਲਿਸ ਅਤੇ ਬੌਬ ਇੱਕ ਦੂਜੇ ਨੂੰ ਕ੍ਰਮਵਾਰ 3 5 mod 17 = 5 ਅਤੇ 3 9 mod 17 = 14 ਭੇਜਦੇ ਹਨ।


Next, Alice computes 14 5 mod 17 and Bob computes 5 9 mod 17, both of which are 12.

ਅੱਗੇ, ਐਲਿਸ 14 5 mod 17 ਦੀ ਗਣਨਾ ਕਰਦੀ ਹੈ ਅਤੇ ਬੌਬ 5 9 mod 17 ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ, ਦੋਵੇਂ 12 ਹਨ।


Each of them now knows 12 as the secret key.

ਉਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਹੁਣ 12 ਨੂੰ ਗੁਪਤ ਕੁੰਜੀ ਵਜੋਂ ਜਾਣਦਾ ਹੈ।


We have to choose a large prime number p and a positive integer g which is a (p−1)th root of 1.

ਸਾਨੂੰ ਇੱਕ ਵੱਡੀ ਅਭਾਜ ਸੰਖਿਆ p ਅਤੇ ਇੱਕ ਸਕਾਰਾਤਮਕ ਪੂਰਨ ਅੰਕ g ਚੁਣਨਾ ਪਵੇਗਾ ਜੋ 1 ਦਾ (p−1)ਵਾਂ ਰੂਟ ਹੈ।


From the description of the protocol, we don’t really need that g be a (p−1)th root of 1.

ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਵਰਣਨ ਤੋਂ, ਸਾਨੂੰ ਅਸਲ ਵਿੱਚ ਇਹ ਲੋੜ ਨਹੀਂ ਹੈ ਕਿ g 1 ਦਾ (p−1)ਵਾਂ ਰੂਟ ਹੋਵੇ।


All we need is that g k mod p ≠ 1, for many values of k, k < p-1.

ਸਾਨੂੰ ਸਿਰਫ਼ ਇਹ ਲੋੜ ਹੈ ਕਿ g k mod p ≠ 1, k ਦੇ ਬਹੁਤ ਸਾਰੇ ਮੁੱਲਾਂ ਲਈ, k < p-1।


Regular expressions and finite state machines are equivalent.

ਨਿਯਮਤ ਸਮੀਕਰਨ ਅਤੇ ਸੀਮਤ ਸਟੇਟ ਮਸ਼ੀਨਾਂ ਬਰਾਬਰ ਹਨ।


For each regular expression R there exists a finite state machine F such that the set of strings in R is the set of strings accepted by F.

ਹਰੇਕ ਨਿਯਮਤ ਸਮੀਕਰਨ R ਲਈ ਇੱਕ ਸੀਮਤ ਸਟੇਟ ਮਸ਼ੀਨ F ਮੌਜੂਦ ਹੈ ਅਜਿਹੀ ਕਿ R ਵਿੱਚ ਸਤਰਾਂ ਦਾ ਸਮੂਹ F ਦੁਆਰਾ ਸਵੀਕਾਰੀਆਂ ਗਈਆਂ ਸਤਰਾਂ ਦਾ ਸਮੂਹ ਹੈ।


The machine has a start state S, an accepting state F and a rejecting state G.

ਮਸ਼ੀਨ ਵਿੱਚ ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ S, ਇੱਕ ਸਵੀਕਾਰ ਕਰਨ ਵਾਲੀ ਸਥਿਤੀ F ਅਤੇ ਇੱਕ ਰੱਦ ਕਰਨ ਵਾਲੀ ਸਥਿਤੀ G ਹੈ।


There is a transition from S to F labeled b, a transition from S to G labeled with all other symbols and a transition from F to G labeled with all symbols.

S ਤੋਂ F ਤੱਕ ਇੱਕ ਤਬਦੀਲੀ ਹੈ ਜਿਸਨੂੰ b ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ, S ਤੋਂ G ਤੱਕ ਇੱਕ ਤਬਦੀਲੀ ਹੈ ਜਿਸਨੂੰ ਬਾਕੀ ਸਾਰੇ ਚਿੰਨ੍ਹ ਨਾਲ ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ F ਤੋਂ G ਤੱਕ ਇੱਕ ਤਬਦੀਲੀ ਹੈ ਜਿਸਨੂੰ ਸਾਰੇ ਚਿੰਨ੍ਹ ਨਾਲ ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ।


ਮਸ਼ੀਨ ਹਮੇਸ਼ਾ G ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ।


How do we construct a machine to recognize concatenation?

ਅਸੀਂ ਕਨਕੈਟੇਨੇਸ਼ਨ ਨੂੰ ਪਛਾਣਨ ਲਈ ਇੱਕ ਮਸ਼ੀਨ ਕਿਵੇਂ ਬਣਾਉਂਦੇ ਹਾਂ?


Suppose we have a machine that accepts a regular expression p and another machine that accepts q.

ਮੰਨ ਲਓ ਕਿ ਸਾਡੇ ਕੋਲ ਇੱਕ ਮਸ਼ੀਨ ਹੈ ਜੋ ਇੱਕ ਨਿਯਮਤ ਸਮੀਕਰਨ p ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ ਅਤੇ ਇੱਕ ਹੋਰ ਮਸ਼ੀਨ ਜੋ q ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ।


Then we can merge the two machines by identifying the accepting state of the first machine with the start state of the second.

ਫਿਰ ਅਸੀਂ ਪਹਿਲੀ ਮਸ਼ੀਨ ਦੀ ਸਵੀਕਾਰ ਕਰਨ ਵਾਲੀ ਸਥਿਤੀ ਨੂੰ ਦੂਜੀ ਦੀ ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ ਨਾਲ ਪਛਾਣ ਕੇ ਦੋ ਮਸ਼ੀਨਾਂ ਨੂੰ ਮਿਲਾ ਸਕਦੇ ਹਾਂ।


ਅੱਗੇ, ਆਓ ਬੰਦ ਹੋਣ 'ਤੇ ਵਿਚਾਰ ਕਰੀਏ।


ਮੰਨ ਲਓ ਕਿ ਸਾਨੂੰ c* ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਹੈ।


The machine in Figure 4.23 does the job.

ਚਿੱਤਰ 4.23 ਵਿੱਚ ਮਸ਼ੀਨ ਇਹ ਕੰਮ ਕਰਦੀ ਹੈ।


Now, let us put some of these constructions together and build a machine to recognize bc*.

ਹੁਣ, ਆਓ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੁਝ ਉਸਾਰੀਆਂ ਨੂੰ ਇਕੱਠੇ ਰੱਖੀਏ ਅਤੇ bc* ਨੂੰ ਪਛਾਣਨ ਲਈ ਇੱਕ ਮਸ਼ੀਨ ਬਣਾਈਏ।


ਮਸ਼ੀਨ ਚਿੱਤਰ 4.24 ਵਿੱਚ ਦਿਖਾਈ ਗਈ ਹੈ।


You can see that it is a concatenation of a machine that accepts b and one that accepts c*.

ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਇਹ ਇੱਕ ਮਸ਼ੀਨ ਦਾ ਕਨਕੈਟੇਨੇਸ਼ਨ ਹੈ ਜੋ b ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ ਅਤੇ ਇੱਕ ਜੋ c* ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ।


Next, let us construct a machine that accepts bc* | cb*.

ਅੱਗੇ, ਆਓ ਇੱਕ ਮਸ਼ੀਨ ਬਣਾਈਏ ਜੋ bc* | cb* ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ।


Clearly, we can build machines for both bc* and cb* separately.

ਸਪੱਸ਼ਟ ਹੈ, ਅਸੀਂ ਦੋਵੇਂ bc* ਅਤੇ cb* ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਮਸ਼ੀਨਾਂ ਬਣਾ ਸਕਦੇ ਹਾਂ।


Building their union is easy, because bc* and cb* start out with different symbols.

ਉਨ੍ਹਾਂ ਦਾ ਸੰਗਠਨ ਬਣਾਉਣਾ ਆਸਾਨ ਹੈ, ਕਿਉਂਕਿ bc* ਅਤੇ cb* ਵੱਖ-ਵੱਖ ਚਿੰਨ੍ਹਾਂ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ।


Regular expressions have a syntax in which a few characters are special constructs and the rest are "ordinary".

ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਵਿੱਚ ਇੱਕ ਵਾਕ-ਰਚਨਾ ਹੁੰਦੀ ਹੈ ਜਿਸ ਵਿੱਚ ਕੁਝ ਅੱਖਰ ਵਿਸ਼ੇਸ਼ ਉਸਾਰੀਆਂ ਹੁੰਦੇ ਹਨ ਅਤੇ ਬਾਕੀ


An ordinary character is a simple regular expression which matches that same character and nothing else.

ਇੱਕ ਆਮ ਅੱਖਰ ਇੱਕ ਸਧਾਰਨ ਨਿਯਮਤ ਸਮੀਕਰਨ ਹੈ ਜੋ ਉਸੇ ਅੱਖਰ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ ਅਤੇ ਕੁਝ ਨਹੀਂ।


The special characters are ‘$’, ‘^’, ‘.’, ‘*’, ‘+’, ‘?’, ‘[’, ‘]’ and ‘".

ਵਿਸ਼ੇਸ਼ ਅੱਖਰ ‘$’, ‘^’, ‘.’, ‘*’, ‘+’, ‘?’, ‘[’, ‘]’ ਅਤੇ ‘\


initial state holds for the empty string, and (3) for each transition do the following verification: suppose the transition is labeledsand it is from a state annotated withbto one withc; then, show that ifbholds for any string x, thencholds forxs.

ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ ਖਾਲੀ ਸਤਰ ਲਈ ਹੈ, ਅਤੇ (3) ਹਰੇਕ ਤਬਦੀਲੀ ਲਈ ਹੇਠ ਲਿਖੇ ਤਸਦੀਕ ਕਰੋ: ਮੰਨ ਲਓ ਕਿ ਤਬਦੀਲੀ ਨੂੰ s ਨਾਲ ਲੇਬਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਇਹ ਇੱਕ ਅਜਿਹੀ ਸਥਿਤੀ ਤੋਂ ਹੈ ਜਿਸਨੂੰ b ਨਾਲ ਐਨੋਟੇਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਇੱਕ ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ ਜਿਸਨੂੰ c ਨਾਲ ਐਨੋਟੇਟ ਕੀਤਾ ਗਿਆ ਹੈ; ਫਿਰ, ਦਿਖਾਓ ਕਿ ਜੇਕਰ b ਕਿਸੇ ਵੀ ਸਤਰ x ਲਈ ਹੈ, ਤਾਂ xs ਲਈ c ਹੈ।


For the machine in Figure 4.12, we have already done step (1).

ਚਿੱਤਰ 4.12 ਵਿੱਚ ਮਸ਼ੀਨ ਲਈ, ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਕਦਮ (1) ਕਰ ਲਿਆ ਹੈ।


For step (2), we have to show that the empty string satisfiesp∧q, that is, the empty string has an even number of 0s and 1s, which clearly holds.

ਕਦਮ (2) ਲਈ, ਸਾਨੂੰ ਇਹ ਦਰਸਾਉਣਾ ਪਏਗਾ ਕਿ ਖਾਲੀ ਸਤਰ p∧q ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਦਾ ਹੈ, ਭਾਵ, ਖਾਲੀ ਸਤਰ ਵਿੱਚ 0 ਅਤੇ 1 ਦੀ ਇੱਕ ਸਮ ਸੰਖਿਆ ਹੈ, ਜੋ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸਹੀ ਹੈ।


For step (3), we have to verify all eight transitions, as shown in Table 4.8.

ਕਦਮ (3) ਲਈ, ਸਾਨੂੰ ਸਾਰੀਆਂ ਅੱਠ ਤਬਦੀਲੀਆਂ ਦੀ ਤਸਦੀਕ ਕਰਨੀ ਪਵੇਗੀ, ਜਿਵੇਂ ਕਿ ਸਾਰਣੀ 4.8 ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।


For example, it is straightforward to verify the transition from A to B by considering an arbitrary stringxwith an even number of 0s and 1s (p∧q) and proving thatx0 has odd number of 0s and even number of 1s (¬p∧q).

ਉਦਾਹਰਨ ਲਈ, A ਤੋਂ B ਤੱਕ ਤਬਦੀਲੀ ਦੀ ਤਸਦੀਕ ਕਰਨਾ ਸਿੱਧਾ ਹੈ, ਇੱਕ ਮਨਮਾਨੀ ਸਤਰ x 'ਤੇ ਵਿਚਾਰ ਕਰਕੇ ਜਿਸ ਵਿੱਚ 0 ਅਤੇ 1 ਦੀ ਇੱਕ ਸਮ ਸੰਖਿਆ ਹੈ (p∧q) ਅਤੇ ਇਹ ਸਾਬਤ ਕਰਨਾ ਕਿ x0 ਵਿੱਚ 0 ਦੀ ਇੱਕ ਅਜੀਬ ਸੰਖਿਆ ਹੈ ਅਤੇ 1 ਦੀ ਇੱਕ ਸਮ ਸੰਖਿਆ ਹੈ (¬p∧q)।


Why Does the Verification Procedure Work?

ਤਸਦੀਕ ਪ੍ਰਕਿਰਿਆ ਕਿਉਂ ਕੰਮ ਕਰਦੀ ਹੈ?


It seems that we are using some sort of circular argument, but that is not so.

ਅਜਿਹਾ ਲਗਦਾ ਹੈ ਕਿ ਅਸੀਂ ਕਿਸੇ ਤਰ੍ਹਾਂ ਦੀ ਗੋਲ ਦਲੀਲ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹਾਂ, ਪਰ ਅਜਿਹਾ ਨਹੀਂ ਹੈ।


In order to convince yourself 4.2. FINITE STATE MACHINE83 that the argument is not circular, construct a proof using induction.

ਆਪਣੇ ਆਪ ਨੂੰ ਯਕੀਨ ਦਿਵਾਉਣ ਲਈ 4.2. ਫਾਈਨਾਈਟ ਸਟੇਟ ਮਸ਼ੀਨ83 ਕਿ ਦਲੀਲ ਗੋਲ ਨਹੀਂ ਹੈ, ਇੰਡਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਸਬੂਤ ਬਣਾਓ।


The the- orem we need to prove is as follows: after processing any stringx, the machine state is A, B, C or D iffxsatisfiesp∧q,¬p∧q,¬p∧¬qorp∧¬q, respectively.

ਸਿਧਾਂਤ ਜਿਸਨੂੰ ਸਾਨੂੰ ਸਾਬਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੈ: ਕਿਸੇ ਵੀ ਸਤਰ x 'ਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਮਸ਼ੀਨ ਦੀ ਸਥਿਤੀ A, B, C ਜਾਂ D ਹੈ ਜੇਕਰ x ਕ੍ਰਮਵਾਰ p∧q, ¬p∧q, ¬p∧¬q ਜਾਂ p∧¬q ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਦਾ ਹੈ।


The proof of this statement is by induction on the length ofx.

ਇਸ ਕਥਨ ਦਾ ਸਬੂਤ x ਦੀ ਲੰਬਾਈ 'ਤੇ ਇੰਡਕਸ਼ਨ ਦੁਆਰਾ ਹੈ।


For|x|= 0:xis an empty string andp∧qholds for it.

ਲਈ|x|= 0: x ਇੱਕ ਖਾਲੀ ਸਤਰ ਹੈ ਅਤੇ p∧q ਇਸਦੇ ਲਈ ਹੈ।


The finite state machines we have seen so far simply accept or reject a string.

ਅਸੀਂ ਹੁਣ ਤੱਕ ਜੋ ਫਾਈਨਾਈਟ ਸਟੇਟ ਮਸ਼ੀਨਾਂ ਦੇਖੀਆਂ ਹਨ, ਉਹ ਸਿਰਫ਼ ਇੱਕ ਸਤਰ ਨੂੰ ਸਵੀਕਾਰ ਜਾਂ ਰੱਦ ਕਰਦੀਆਂ ਹਨ।


So, they are useful for doing complicated tests, such as to determine if a string matches a given pattern.

ਇਸ ਲਈ, ਉਹ ਗੁੰਝਲਦਾਰ ਟੈਸਟ ਕਰਨ ਲਈ ਉਪਯੋਗੀ ਹਨ, ਜਿਵੇਂ ਕਿ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨਾ ਕਿ ਕੀ ਇੱਕ ਸਤਰ ਇੱਕ ਦਿੱਤੇ ਪੈਟਰਨ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।


ਅਜਿਹੀਆਂ ਮਸ਼ੀਨਾਂ ਨੂੰ ਸਵੀਕਾਰਕਰਤਾ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।


Now, we will en- hance the machine so that it also produces a string as output; such machines are calledtransducers.

ਹੁਣ, ਅਸੀਂ ਮਸ਼ੀਨ ਨੂੰ ਵਧਾਵਾਂਗੇ ਤਾਂ ਜੋ ਇਹ ਆਉਟਪੁੱਟ ਦੇ ਤੌਰ 'ਤੇ ਇੱਕ ਸਤਰ ਵੀ ਤਿਆਰ ਕਰੇ; ਅਜਿਹੀਆਂ ਮਸ਼ੀਨਾਂ ਨੂੰ ਟ੍ਰਾਂਸਡਿਊਸਰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।


Transducers provide powerful string processing mechanism.

ਟ੍ਰਾਂਸਡਿਊਸਰ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸਤਰ ਪ੍ਰੋਸੈਸਿੰਗ ਵਿਧੀ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।


Typically, acceptance or rejection of the input string is of no particular im- portance in transducers; only the construction of the appropriate output string matters.

ਆਮ ਤੌਰ 'ਤੇ, ਇਨਪੁਟ ਸਤਰ ਦੀ ਸਵੀਕ੍ਰਿਤੀ ਜਾਂ ਰੱਦ ਕਰਨਾ ਟ੍ਰਾਂਸਡਿਊਸਰਾਂ ਵਿੱਚ ਕੋਈ ਖਾਸ ਮਹੱਤਵ ਨਹੀਂ ਰੱਖਦਾ; ਸਿਰਫ਼ ਢੁਕਵੇਂ ਆਉਟਪੁੱਟ ਸਤਰ ਦਾ ਨਿਰਮਾਣ ਹੀ ਮਹੱਤਵਪੂਰਨ ਹੈ।


Pictorially, we will depict a transition as shown in Figure 4.13.

ਚਿੱਤਰਮਈ ਰੂਪ ਵਿੱਚ, ਅਸੀਂ ਇੱਕ ਤਬਦੀਲੀ ਨੂੰ ਦਰਸਾਵਾਂਗੇ ਜਿਵੇਂ ਕਿ ਚਿੱਤਰ 4.13 ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।


It denotes that on reading symbols, the machine transits from A to B and outputs string t.

ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਚਿੰਨ੍ਹ ਪੜ੍ਹਨ 'ਤੇ, ਮਸ਼ੀਨ A ਤੋਂ B ਤੱਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਸਤਰ t ਆਉਟਪੁੱਟ ਕਰਦੀ ਹੈ।


The output alphabet of the machine —over whichtis a string— may differ from its input alphabet.

ਮਸ਼ੀਨ ਦਾ ਆਉਟਪੁੱਟ ਵਰਣਮਾਲਾ — ਜਿਸ ਉੱਤੇ ਇੱਕ ਸਤਰ ਹੈ — ਇਸਦੇ ਇਨਪੁਟ ਵਰਣਮਾਲਾ ਤੋਂ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ।


We retrieve the top pair of values from the stack, assign them to sand p, and simulate the transition that handles a constant, i.e., we set p:= p × a.

ਅਸੀਂ ਸਟੈਕ ਵਿੱਚੋਂ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਮੁੱਲਾਂ ਦੇ ਜੋੜੇ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਾਂ, ਉਹਨਾਂ ਨੂੰ s ਅਤੇ p ਨੂੰ ਸੌਂਪਦੇ ਹਾਂ, ਅਤੇ ਤਬਦੀਲੀ ਦਾ ਸਿਮੂਲੇਸ਼ਨ ਕਰਦੇ ਹਾਂ ਜੋ ਇੱਕ ਸਥਿਰਾਂਕ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ, ਭਾਵ, ਅਸੀਂ p:= p × a ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਾਂ।


We store the length of the stack in n, incrementing it on encountering a ‘(’ and decrementing it for a ‘)’.

ਅਸੀਂ ਸਟੈਕ ਦੀ ਲੰਬਾਈ ਨੂੰ n ਵਿੱਚ ਸਟੋਰ ਕਰਦੇ ਹਾਂ, ਜਦੋਂ ‘(’ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹਾਂ ਤਾਂ ਇਸਨੂੰ ਵਧਾਉਂਦੇ ਹਾਂ ਅਤੇ ‘)’ ਲਈ ਘਟਾਉਂਦੇ ਹਾਂ।


A ‘)’ is accepted only when n > 0 and ‘#’ when n= 0.

ਇੱਕ ‘)’ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਸਵੀਕਾਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ n > 0 ਅਤੇ ‘#’ ਜਦੋਂ n= 0।


Figure 4.34: Computes value of arithmetic expression

ਚਿੱਤਰ 4.34: ਗਣਿਤਿਕ ਸਮੀਕਰਨ ਦਾ ਮੁੱਲ ਗਿਣਦਾ ਹੈ


Run the machine of Figure 4.34 on input string 3 + (4×(2×6 + 8)×3) + 7# and show the values of the variables (including contents of the stack) at each step.

ਇਨਪੁਟ ਸਟ੍ਰਿੰਗ 3 + (4×(2×6 + 8)×3) + 7# 'ਤੇ ਚਿੱਤਰ 4.34 ਦੀ ਮਸ਼ੀਨ ਚਲਾਓ ਅਤੇ ਹਰੇਕ ਪੜਾਅ 'ਤੇ ਵੇਰੀਏਬਲਾਂ ਦੇ ਮੁੱਲ (ਸਟੈਕ ਦੀ ਸਮੱਗਰੀ ਸਮੇਤ) ਦਿਖਾਓ।


Consider the dome light in a car that is either “on” or “off”.

ਇੱਕ ਕਾਰ ਵਿੱਚ ਗੁੰਬਦ ਦੀ ਲਾਈਟ 'ਤੇ ਗੌਰ ਕਰੋ ਜੋ ਜਾਂ ਤਾਂ “ਚਾਲੂ” ਜਾਂ “ਬੰਦ” ਹੁੰਦੀ ਹੈ।


ਸ਼ੁਰੂ ਵਿੱਚ, ਲਾਈਟ ਬੰਦ ਹੁੰਦੀ ਹੈ।


The light comes on if a switch is pressed (denote the switch press by event sw) or if the door is opened (denote by door).

ਲਾਈਟ ਚਾਲੂ ਹੁੰਦੀ ਹੈ ਜੇਕਰ ਇੱਕ ਸਵਿੱਚ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ (ਸਵਿੱਚ ਪ੍ਰੈਸ ਨੂੰ ਇਵੈਂਟ sw ਦੁਆਰਾ ਦਰਸਾਓ) ਜਾਂ ਜੇਕਰ ਦਰਵਾਜ਼ਾ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ (ਦਰਵਾਜ਼ੇ ਦੁਆਰਾ ਦਰਸਾਓ)।


The light goes off if the switch is pressed again (i.e., event sw), the door is closed (denote by door ′ ) or 5 minutes elapse with the light being on (denote this time-out event by tmout).

ਲਾਈਟ ਬੰਦ ਹੋ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਸਵਿੱਚ ਨੂੰ ਦੁਬਾਰਾ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ (ਭਾਵ, ਇਵੈਂਟ sw), ਦਰਵਾਜ਼ਾ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ (ਦਰਵਾਜ਼ੇ ′ ਦੁਆਰਾ ਦਰਸਾਓ) ਜਾਂ 5 ਮਿੰਟ ਲੰਘ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਲਾਈਟ ਚਾਲੂ ਹੁੰਦੀ ਹੈ (ਇਸ ਟਾਈਮ-ਆਊਟ ਇਵੈਂਟ ਨੂੰ tmout ਦੁਆਰਾ ਦਰਸਾਓ)।


The example just described denotes an elementary event-based system.

ਉਦਾਹਰਨ ਵਿੱਚ ਹੁਣੇ ਦੱਸਿਆ ਗਿਆ ਇੱਕ ਐਲੀਮੈਂਟਰੀ ਇਵੈਂਟ-ਅਧਾਰਿਤ ਸਿਸਟਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।


The events are sw, door, door ′ , and tmout.


The designer has no control over if or when the events happen (the time out event is special; it is guaranteed to happen at the designated time).

ਡਿਜ਼ਾਈਨਰ ਦਾ ਇਸ ਗੱਲ 'ਤੇ ਕੋਈ ਕੰਟਰੋਲ ਨਹੀਂ ਹੈ ਕਿ ਇਵੈਂਟ ਕਦੋਂ ਜਾਂ ਕਿਵੇਂ ਵਾਪਰਦੇ ਹਨ (ਟਾਈਮ ਆਊਟ ਇਵੈਂਟ ਵਿਸ਼ੇਸ਼ ਹੈ; ਇਹ ਨਿਰਧਾਰਤ ਸਮੇਂ 'ਤੇ ਵਾਪਰਨ ਦੀ ਗਾਰੰਟੀ ਹੈ)।


He has to design a system that enters the correct state and carries out the appropriate actions when an event happens.

ਉਸਨੂੰ ਇੱਕ ਅਜਿਹਾ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਜੋ ਸਹੀ ਸਥਿਤੀ ਵਿੱਚ ਦਾਖਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਜਦੋਂ ਕੋਈ ਇਵੈਂਟ ਵਾਪਰਦਾ ਹੈ ਤਾਂ ਉਚਿਤ ਕਾਰਵਾਈਆਂ ਕਰਦਾ ਹੈ।


The event may be likened to the occurrence of a symbol.

ਇਵੈਂਟ ਨੂੰ ਇੱਕ ਪ੍ਰਤੀਕ ਦੀ ਘਟਨਾ ਨਾਲ ਮੇਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।


Therefore, we treat each event as a symbol and use the diagrams as before to depict the state transitions.

ਇਸ ਲਈ, ਅਸੀਂ ਹਰੇਕ ਇਵੈਂਟ ਨੂੰ ਇੱਕ ਪ੍ਰਤੀਕ ਵਜੋਂ ਮੰਨਦੇ ਹਾਂ ਅਤੇ ਸਟੇਟ ਪਰਿਵਰਤਨਾਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਪਹਿਲਾਂ ਵਾਂਗ ਹੀ ਚਿੱਤਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ।


Figure 4.35 shows a possible specification of the dome light problem.

ਚਿੱਤਰ 4.35 ਗੁੰਬਦ ਲਾਈਟ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਸੰਭਾਵਿਤ ਨਿਰਧਾਰਨ ਦਿਖਾਉਂਦਾ ਹੈ।


Here, we have taken the liberty of writing compound events as boolean combinations of simpler events.

ਇੱਥੇ, ਅਸੀਂ ਸਧਾਰਨ ਇਵੈਂਟਾਂ ਦੇ ਬੂਲੀਅਨ ਸੁਮੇਲ ਦੇ ਰੂਪ ਵਿੱਚ ਮਿਸ਼ਰਿਤ ਇਵੈਂਟਾਂ ਨੂੰ ਲਿਖਣ ਦੀ ਆਜ਼ਾਦੀ ਲਈ ਹੈ।


Boolean connectives ∧ and ∨ have the expected meanings, ¬ is problematic and should be avoided.

ਬੂਲੀਅਨ ਕਨੈਕਟਿਵ ∧ ਅਤੇ ∨ ਦੇ ਉਮੀਦ ਕੀਤੇ ਅਰਥ ਹਨ, ¬ ਸਮੱਸਿਆ ਵਾਲਾ ਹੈ ਅਤੇ ਇਸ ਤੋਂ ਬਚਣਾ ਚਾਹੀਦਾ ਹੈ।


The notions of accepting and rejecting states are irrelevant for specifications of event based systems.

ਇਵੈਂਟ ਅਧਾਰਿਤ ਪ੍ਰਣਾਲੀਆਂ ਦੇ ਨਿਰਧਾਰਨ ਲਈ ਸਵੀਕਾਰ ਕਰਨ ਅਤੇ ਰੱਦ ਕਰਨ ਦੀਆਂ ਧਾਰਨਾਵਾਂ ਅਪ੍ਰਸੰਗਿਕ ਹਨ।


Suppose that the switch is pressed to turn on the dome light, the door is then opened and closed.

ਮੰਨ ਲਓ ਕਿ ਗੁੰਬਦ ਦੀ ਲਾਈਟ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਸਵਿੱਚ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ, ਫਿਰ ਦਰਵਾਜ਼ਾ ਖੋਲ੍ਹਿਆ ਅਤੇ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The infix operator `rem` is used for finding the remainder.

ਇਨਫਿਕਸ ਓਪਰੇਟਰ `rem` ਦੀ ਵਰਤੋਂ ਬਾਕੀ ਪਤਾ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The `mod` operator returns a value between 0 and y-1 for positive y.

`mod` ਓਪਰੇਟਰ ਸਕਾਰਾਤਮਕ y ਲਈ 0 ਅਤੇ y-1 ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਮੁੱਲ ਵਾਪਸ ਕਰਦਾ ਹੈ।


The functions `even` and `odd` return boolean results.

ਫੰਕਸ਼ਨ `even` ਅਤੇ `odd` ਬੂਲੀਅਨ ਨਤੀਜੇ ਵਾਪਸ ਕਰਦੇ ਹਨ।


Functions `max` and `min` take two arguments.

ਫੰਕਸ਼ਨ `max` ਅਤੇ `min` ਦੋ ਆਰਗੂਮੈਂਟ ਲੈਂਦੇ ਹਨ।


Parentheses are needed only to enforce an evaluation order.

ਸਿਰਫ਼ ਮੁਲਾਂਕਣ ਦੇ ਕ੍ਰਮ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਹੀ ਬਰੈਕਟਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।


The arithmetic relations are <, <=, ==, /=, >, >=.

ਅੰਕਗਣਿਤ ਸੰਬੰਧ <, <=, ==, /=, >, >= ਹਨ।


Each of these is a binary operator that returns a boolean result.

ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਇੱਕ ਬਾਈਨਰੀ ਓਪਰੇਟਰ ਹੈ ਜੋ ਇੱਕ ਬੂਲੀਅਨ ਨਤੀਜਾ ਵਾਪਸ ਕਰਦਾ ਹੈ।


The equality operator is written as == and inequality as /=.

ਬਰਾਬਰੀ ਓਪਰੇਟਰ ਨੂੰ == ਅਤੇ ਅਸਮਾਨਤਾ ਨੂੰ /= ਵਜੋਂ ਲਿਖਿਆ ਜਾਂਦਾ ਹੈ।


Haskell does not specify how to add an integer to a boolean.

ਹੈਸਕੇਲ ਇਹ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦਾ ਹੈ ਕਿ ਇੱਕ ਪੂਰਨ ਅੰਕ ਨੂੰ ਇੱਕ ਬੂਲੀਅਨ ਵਿੱਚ ਕਿਵੇਂ ਜੋੜਿਆ ਜਾਵੇ।


There are two boolean constants, written as True and False.

ਦੋ ਬੂਲੀਅਨ ਸਥਿਰਾਂਕ ਹਨ, ਜੋ True ਅਤੇ False ਵਜੋਂ ਲਿਖੇ ਗਏ ਹਨ।


The boolean operators are: not, &&, ||, ==, /=.


Haskell supports two kinds of integers, Integer and Int data types.

ਹੈਸਕੇਲ ਦੋ ਤਰ੍ਹਾਂ ਦੇ ਪੂਰਨ ਅੰਕਾਂ, Integer ਅਤੇ Int ਡਾਟਾ ਟਾਈਪਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।


A character is enclosed within single quotes.

ਇੱਕ ਅੱਖਰ ਨੂੰ ਸਿੰਗਲ ਕੋਟਸ ਵਿੱਚ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


A string is enclosed within double quotes.

ਇੱਕ ਸਤਰ ਨੂੰ ਡਬਲ ਕੋਟਸ ਵਿੱਚ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


You can compare characters using arithmetic relations.

ਤੁਸੀਂ ਅੰਕਗਣਿਤ ਸੰਬੰਧਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅੱਖਰਾਂ ਦੀ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹੋ।


The letters are ordered in the usual fashion.

ਅੱਖਰ ਆਮ ਤਰੀਕੇ ਨਾਲ ਕ੍ਰਮਬੱਧ ਹੁੰਦੇ ਹਨ।


There are two functions defined on characters, ord and chr.

ਅੱਖਰਾਂ 'ਤੇ ਪਰਿਭਾਸ਼ਿਤ ਦੋ ਫੰਕਸ਼ਨ ਹਨ, ord ਅਤੇ chr।


Function ord(c) returns the value of the character c.

ਫੰਕਸ਼ਨ ord(c) ਅੱਖਰ c ਦਾ ਮੁੱਲ ਵਾਪਸ ਕਰਦਾ ਹੈ।


ਇੱਕ ਸਤਰ ਅੱਖਰਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ।


ਸਾਨੂੰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਦੀ ਲੋੜ ਹੈ।


The interpreter can deduce the type of each expression.

ਇੰਟਰਪ੍ਰੇਟਰ ਹਰੇਕ ਸਮੀਕਰਨ ਦੀ ਕਿਸਮ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾ ਸਕਦਾ ਹੈ।


Haskell allows you to create tuples with any number of components.

ਹੈਸਕੇਲ ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਗਿਣਤੀ ਦੇ ਭਾਗਾਂ ਨਾਲ ਟਿਊਪਲ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


ਅਸੀਂ ਇਸ ਭਾਗ ਵਿੱਚ ਟਿਊਪਲ ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਾਂ।


The type of a tuple is a tuple of types, one entry for the type of each operand.

ਇੱਕ ਟਿਊਪਲ ਦੀ ਕਿਸਮ ਟਾਈਪਾਂ ਦਾ ਇੱਕ ਟਿਊਪਲ ਹੈ, ਹਰੇਕ ਓਪਰੇਂਡ ਦੀ ਕਿਸਮ ਲਈ ਇੱਕ ਐਂਟਰੀ।


Each function has a type, namely, the types of its arguments in order followed by the type of the result.

ਹਰੇਕ ਫੰਕਸ਼ਨ ਦੀ ਇੱਕ ਕਿਸਮ ਹੁੰਦੀ ਹੈ, ਅਰਥਾਤ, ਇਸਦੇ ਦਲੀਲਾਂ ਦੀਆਂ ਕਿਸਮਾਂ ਕ੍ਰਮ ਵਿੱਚ, ਨਤੀਜੇ ਦੀ ਕਿਸਮ ਦੁਆਰਾ ਬਾਅਦ ਵਿੱਚ।


Haskell allows us to write functions whose arguments can be any type.

ਹੈਸਕੇਲ ਸਾਨੂੰ ਉਹ ਫੰਕਸ਼ਨ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਸਦੇ ਤਰਕ ਕਿਸੇ ਵੀ ਕਿਸਮ ਦੇ ਹੋ ਸਕਦੇ ਹਨ।


ਪਛਾਣ ਫੰਕਸ਼ਨ 'ਤੇ ਗੌਰ ਕਰੋ।


The interpreter chooses the most general type for a function.

ਇੰਟਰਪ੍ਰੇਟਰ ਇੱਕ ਫੰਕਸ਼ਨ ਲਈ ਸਭ ਤੋਂ ਆਮ ਕਿਸਮ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ।


Equality is not necessarily defined on all types.

ਸਮਾਨਤਾ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਸਾਰੀਆਂ ਕਿਸਮਾਂ 'ਤੇ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ।


Polymorphism means that a function can accept and produce data of many different types.

ਪੌਲੀਮੋਰਫਿਜ਼ਮ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇੱਕ ਫੰਕਸ਼ਨ ਕਈ ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਸਵੀਕਾਰ ਅਤੇ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ।


ਹੈਸਕੇਲ ਵਿੱਚ ਇੱਕ ਵਿਆਪਕ ਕਿਸਮ ਦੀ ਪ੍ਰਣਾਲੀ ਹੈ।


ਇੱਕ ਕਿਸਮ ਦਾ ਵਰਗ ਕਿਸਮਾਂ ਦਾ ਸੰਗ੍ਰਹਿ ਹੈ।


ਇੱਕ ਸੂਚੀ ਦੀ ਕਿਸਮ [ਆਈਟਮਟਾਈਪ] ਹੈ।


There is one built-in operator that is used to construct a list element by element.

ਇੱਕ ਬਿਲਟ-ਇਨ ਓਪਰੇਟਰ ਹੈ ਜੋ ਇੱਕ ਸੂਚੀ ਨੂੰ ਤੱਤ ਦੁਆਰਾ ਤੱਤ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


Pattern matching can be applied very effectively in such situations.

ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਪੈਟਰਨ ਮੈਚਿੰਗ ਬਹੁਤ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


This style of programming on lists is very common.

ਸੂਚੀਆਂ 'ਤੇ ਪ੍ਰੋਗਰਾਮਿੰਗ ਦੀ ਇਹ ਸ਼ੈਲੀ ਬਹੁਤ ਆਮ ਹੈ।


We define the function separately for empty and non-empty lists.

ਅਸੀਂ ਖਾਲੀ ਅਤੇ ਗੈਰ-ਖਾਲੀ ਸੂਚੀਆਂ ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਫੰਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਾਂ।


Consider now a function that sums the elements of a list of integers.

ਹੁਣ ਇੱਕ ਫੰਕਸ਼ਨ 'ਤੇ ਗੌਰ ਕਰੋ ਜੋ ਪੂਰਨ ਅੰਕਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਦੇ ਤੱਤਾਂ ਦਾ ਜੋੜ ਕਰਦਾ ਹੈ।


The running time of this algorithm is O(n^2).

ਇਸ ਐਲਗੋਰਿਦਮ ਦਾ ਰਨਿੰਗ ਟਾਈਮ O(n^2) ਹੈ।


ਪ੍ਰੋਗਰਾਮ ਪੌਲੀਨੋਮੀਅਲ ਦਾ ਮੁਲਾਂਕਣ ਕਰਦਾ ਹੈ।


Horner's rule is a method of polynomial evaluation.

ਹੌਰਨਰ ਦਾ ਨਿਯਮ ਪੌਲੀਨੋਮੀਅਲ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ।


We are interested in proving properties of programs.

ਅਸੀਂ ਪ੍ਰੋਗਰਾਮਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਾਬਤ ਕਰਨ ਵਿੱਚ ਦਿਲਚਸਪੀ ਰੱਖਦੇ ਹਾਂ।


Induction is our main tool in proving properties of functional programs.

ਇੰਡਕਸ਼ਨ ਫੰਕਸ਼ਨਲ ਪ੍ਰੋਗਰਾਮਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਾਬਤ ਕਰਨ ਵਿੱਚ ਸਾਡਾ ਮੁੱਖ ਸੰਦ ਹੈ।


The function 'rvc' combines list reversal and concatenation.

'rvc' ਫੰਕਸ਼ਨ ਸੂਚੀ ਉਲਟਾਉਣ ਅਤੇ ਜੋੜਨ ਨੂੰ ਜੋੜਦਾ ਹੈ।


We will need facts about 'rev' and '++' for the proof.

ਸਾਨੂੰ ਸਬੂਤ ਲਈ 'rev' ਅਤੇ '++' ਬਾਰੇ ਤੱਥਾਂ ਦੀ ਲੋੜ ਪਵੇਗੀ।


The associativity of '++' is used without explicitly referring to it.

'++' ਦੀ ਐਸੋਸੀਏਟਿਵਿਟੀ ਦੀ ਵਰਤੋਂ ਬਿਨਾਂ ਕਿਸੇ ਸਪੱਸ਼ਟ ਹਵਾਲੇ ਦੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The function 'foldr' is a higher-order function.

'foldr' ਫੰਕਸ਼ਨ ਇੱਕ ਉੱਚ-ਕ੍ਰਮ ਦਾ ਫੰਕਸ਼ਨ ਹੈ।


Higher order functions are common in functional programming.

ਉੱਚ-ਕ੍ਰਮ ਦੇ ਫੰਕਸ਼ਨ ਫੰਕਸ਼ਨਲ ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਆਮ ਹਨ।


The type of 'foldr' is (a -> a -> a) -> a -> [a] -> a.

'foldr' ਦੀ ਕਿਸਮ (a -> a -> a) -> a -> [a] -> a ਹੈ।


Function 'map' takes a function and a list as arguments.

ਫੰਕਸ਼ਨ 'map' ਇੱਕ ਫੰਕਸ਼ਨ ਅਤੇ ਇੱਕ ਸੂਚੀ ਨੂੰ ਦਲੀਲਾਂ ਵਜੋਂ ਲੈਂਦਾ ਹੈ।


The type of 'map' is (a -> b) -> [a] -> [b].

'map' ਦੀ ਕਿਸਮ (a -> b) -> [a] -> [b] ਹੈ।


Function 'filter' returns elements for which a predicate holds.

ਫੰਕਸ਼ਨ 'filter' ਉਹ ਤੱਤ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜਿਸਦੇ ਲਈ ਇੱਕ ਪ੍ਰੈਡੀਕੇਟ ਹੁੰਦਾ ਹੈ।


The satisfiability problem is an important problem in computer science.

ਸੰਤੁਸ਼ਟੀ ਸਮੱਸਿਆ ਕੰਪਿਊਟਰ ਵਿਗਿਆਨ ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਸਮੱਸਿਆ ਹੈ।


A propositional formula is in Conjunctive Normal Form (CNF).

ਇੱਕ ਪ੍ਰਸਤਾਵਿਕ ਫਾਰਮੂਲਾ ਕੰਜੰਕਟਿਵ ਨੌਰਮਲ ਫਾਰਮ (CNF) ਵਿੱਚ ਹੈ।


The Davis-Putnam procedure is an effective solution method.

ਡੇਵਿਸ-ਪੁਟਨਮ ਵਿਧੀ ਇੱਕ ਪ੍ਰਭਾਵੀ ਹੱਲ ਵਿਧੀ ਹੈ।


The formula is satisfiable if it has no empty terms.

ਫਾਰਮੂਲਾ ਸੰਤੁਸ਼ਟ ਹੈ ਜੇਕਰ ਇਸ ਵਿੱਚ ਕੋਈ ਖਾਲੀ ਸ਼ਰਤਾਂ ਨਹੀਂ ਹਨ।


We can represent a formula as a list of terms.

ਅਸੀਂ ਇੱਕ ਫਾਰਮੂਲੇ ਨੂੰ ਸ਼ਰਤਾਂ ਦੀ ਸੂਚੀ ਵਜੋਂ ਦਰਸਾ ਸਕਦੇ ਹਾਂ।


The top-level function 'dp' returns a boolean.

ਸਿਖਰ-ਪੱਧਰ ਦਾ ਫੰਕਸ਼ਨ 'dp' ਇੱਕ ਬੂਲੀਅਨ ਵਾਪਸ ਕਰਦਾ ਹੈ।


The program structure and performance can be improved.

ਪ੍ਰੋਗਰਾਮ ਦੀ ਬਣਤਰ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਸੁਧਾਰਿਆ ਜਾ ਸਕਦਾ ਹੈ।


Show that the execution time of reverse xs ys is O(n) where the length of xs is n.

ਦਿਖਾਓ ਕਿ reverse xs ys ਦਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਮਾਂ O(n) ਹੈ ਜਿੱਥੇ xs ਦੀ ਲੰਬਾਈ n ਹੈ।


Prove from the definition of rev that rev (rev xs) = xs.

rev ਦੀ ਪਰਿਭਾਸ਼ਾ ਤੋਂ ਸਾਬਤ ਕਰੋ ਕਿ rev (rev xs) = xs।


Prove from the definition of rev and reverse that reverse xs ys = (rev xs) ++ ys.

rev ਅਤੇ reverse ਦੀ ਪਰਿਭਾਸ਼ਾ ਤੋਂ ਸਾਬਤ ਕਰੋ ਕਿ reverse xs ys = (rev xs) ++ ys।


Show how to right-rotate a list efficiently (i.e., in linear time in the size of the argument list).

ਦਿਖਾਓ ਕਿ ਇੱਕ ਸੂਚੀ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਸੱਜੇ-ਪਾਸੇ ਕਿਵੇਂ ਘੁੰਮਾਇਆ ਜਾਵੇ (ਭਾਵ, ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਦੇ ਆਕਾਰ ਵਿੱਚ ਰੇਖਿਕ ਸਮੇਂ ਵਿੱਚ)।


Right-rotation of [1,2,3,4] yields [4,1,2,3].

[1,2,3,4] ਦਾ ਸੱਜੇ-ਪਾਸੇ ਘੁੰਮਾਉਣਾ [4,1,2,3] ਦਿੰਦਾ ਹੈ।


ਸੰਕੇਤ: rev ਵਰਤੋ।


There is an iterative solution for this problem, which goes like this.

ਇਸ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਦੁਹਰਾਉਣ ਵਾਲਾ ਹੱਲ ਹੈ, ਜੋ ਇਸ ਤਰ੍ਹਾਂ ਹੈ।


Disk 1 moves in every alternate step starting with the first step.

ਡਿਸਕ 1 ਹਰ ਬਦਲਵੇਂ ਕਦਮ ਵਿੱਚ ਪਹਿਲੇ ਕਦਮ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।


If n is odd, disk 1 moves cyclically from 'a' to 'b' to 'c' to 'a'..., and if n is even, disk 1 moves cyclically from 'a' to 'c' to 'b' to 'a'....

ਜੇਕਰ n ਟਾਂਕ ਹੈ, ਤਾਂ ਡਿਸਕ 1 'a' ਤੋਂ 'b' ਤੋਂ 'c' ਤੋਂ 'a' ਤੱਕ ਚੱਕਰ ਵਿੱਚ ਘੁੰਮਦੀ ਹੈ..., ਅਤੇ ਜੇਕਰ n ਜਿਸਤ ਹੈ, ਤਾਂ ਡਿਸਕ 1 'a' ਤੋਂ 'c' ਤੋਂ 'b' ਤੋਂ 'a' ਤੱਕ ਚੱਕਰ ਵਿੱਚ ਘੁੰਮਦੀ ਹੈ....


In each remaining step, there is exactly one possible move: ignore the peg of which disk 1 is the top; compare the tops of the two remaining pegs and move the smaller one to the top of the other peg.

ਹਰੇਕ ਬਾਕੀ ਬਚੇ ਕਦਮ ਵਿੱਚ, ਸਿਰਫ਼ ਇੱਕ ਸੰਭਵ ਚਾਲ ਹੈ: ਉਸ ਖੰਭੇ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ ਜਿਸਦਾ ਡਿਸਕ 1 ਸਿਖਰ 'ਤੇ ਹੈ; ਬਾਕੀ ਦੋ ਖੰਭਿਆਂ ਦੇ ਸਿਖਰਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ ਅਤੇ ਛੋਟੇ ਨੂੰ ਦੂਜੇ ਖੰਭੇ ਦੇ ਸਿਖਰ 'ਤੇ ਲੈ ਜਾਓ।


I don’t know an easy proof of this iterative scheme; in fact, the best proof I know shows that this scheme is equivalent to an obviously correct recursive scheme.

ਮੈਨੂੰ ਇਸ ਦੁਹਰਾਉਣ ਵਾਲੀ ਯੋਜਨਾ ਦਾ ਕੋਈ ਸੌਖਾ ਸਬੂਤ ਨਹੀਂ ਪਤਾ; ਅਸਲ ਵਿੱਚ, ਸਭ ਤੋਂ ਵਧੀਆ ਸਬੂਤ ਜੋ ਮੈਂ ਜਾਣਦਾ ਹਾਂ ਉਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਯੋਜਨਾ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸਹੀ ਰਿਕਰਸਿਵ ਯੋਜਨਾ ਦੇ ਬਰਾਬਰ ਹੈ।


The recursive scheme is based on the following observations.

ਰਿਕਰਸਿਵ ਯੋਜਨਾ ਹੇਠ ਲਿਖੀਆਂ ਗੱਲਾਂ 'ਤੇ ਅਧਾਰਤ ਹੈ।


There is a step in which the largest disk is moved from 'a'; we show that it is sufficient to move it only once, from 'a' to 'b'.

ਇੱਕ ਅਜਿਹਾ ਕਦਮ ਹੈ ਜਿਸ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡੀ ਡਿਸਕ ਨੂੰ 'a' ਤੋਂ ਹਿਲਾਇਆ ਜਾਂਦਾ ਹੈ; ਅਸੀਂ ਦਿਖਾਉਂਦੇ ਹਾਂ ਕਿ ਇਸਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ, 'a' ਤੋਂ 'b' ਤੱਕ ਹਿਲਾਉਣਾ ਕਾਫ਼ੀ ਹੈ।


At that moment, disk n is the top disk at 'a' and there is no other disk at 'b'.

ਉਸ ਸਮੇਂ, ਡਿਸਕ n 'a' 'ਤੇ ਸਿਖਰਲੀ ਡਿਸਕ ਹੈ ਅਤੇ 'b' 'ਤੇ ਕੋਈ ਹੋਰ ਡਿਸਕ ਨਹੀਂ ਹੈ।


So, all other disks are at 'c', and, according to the given constraint, they are correctly stacked.

ਇਸ ਲਈ, ਬਾਕੀ ਸਾਰੀਆਂ ਡਿਸਕਾਂ 'c' 'ਤੇ ਹਨ, ਅਤੇ, ਦਿੱਤੀ ਗਈ ਰੁਕਾਵਟ ਦੇ ਅਨੁਸਾਰ, ਉਹ ਸਹੀ ਢੰਗ ਨਾਲ ਸਟੈਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।


Therefore, prior to the move of disk n, we have the subtask of moving the remaining n−1 disks, provided n > 1, from 'a' to 'c'.

ਇਸ ਲਈ, ਡਿਸਕ n ਨੂੰ ਹਿਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਸਾਡੇ ਕੋਲ ਬਾਕੀ n−1 ਡਿਸਕਾਂ ਨੂੰ ਹਿਲਾਉਣ ਦਾ ਉਪ-ਕਾਰਜ ਹੈ, ਜੇਕਰ n > 1, 'a' ਤੋਂ 'c' ਤੱਕ।


Following the move of disk n, the subtask is to move the remaining n−1 disks from 'a' to 'c'.

ਡਿਸਕ n ਨੂੰ ਹਿਲਾਉਣ ਤੋਂ ਬਾਅਦ, ਉਪ-ਕਾਰਜ ਬਾਕੀ n−1 ਡਿਸਕਾਂ ਨੂੰ 'a' ਤੋਂ 'c' ਤੱਕ ਹਿਲਾਉਣਾ ਹੈ।


Each of these subtasks is smaller than the original task, and may be solved recursively.

ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਉਪ-ਕਾਰਜ ਅਸਲ ਕੰਮ ਨਾਲੋਂ ਛੋਟਾ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਰਿਕਰਸਿਵ ਤੌਰ 'ਤੇ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


Note that in solving the subtasks, disk n may be disregarded, because any disk can be placed on it; hence, its presence or absence is immaterial.

ਨੋਟ ਕਰੋ ਕਿ ਉਪ-ਕਾਰਜਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਵਿੱਚ, ਡਿਸਕ n ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਕਿਉਂਕਿ ਕੋਈ ਵੀ ਡਿਸਕ ਇਸ 'ਤੇ ਰੱਖੀ ਜਾ ਸਕਦੀ ਹੈ; ਇਸ ਲਈ, ਇਸਦੀ ਮੌਜੂਦਗੀ ਜਾਂ ਗੈਰਹਾਜ਼ਰੀ ਬੇਅਸਰ ਹੈ।


Below, tower n x y z returns a list of steps to transfer n disks from peg x to y using z as an intermediate peg.

ਹੇਠਾਂ, ਟਾਵਰ n x y z n ਡਿਸਕਾਂ ਨੂੰ ਪੈਗ x ਤੋਂ y ਤੱਕ ਤਬਦੀਲ ਕਰਨ ਲਈ ਕਦਮਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਵਾਪਸ ਕਰਦਾ ਹੈ z ਨੂੰ ਇੱਕ ਵਿਚਕਾਰਲੇ ਪੈਗ ਵਜੋਂ ਵਰਤਦਾ ਹੈ।


In 150 seconds, of which about a minute is spent on initialization.

150 ਸਕਿੰਟਾਂ ਵਿੱਚ, ਜਿਸ ਵਿੱਚੋਂ ਲਗਭਗ ਇੱਕ ਮਿੰਟ ਸ਼ੁਰੂਆਤ 'ਤੇ ਖਰਚ ਹੁੰਦਾ ਹੈ।


The scheme they have developed is fairly robust with respect to machine failures.

ਉਨ੍ਹਾਂ ਦੁਆਰਾ ਵਿਕਸਤ ਕੀਤੀ ਗਈ ਯੋਜਨਾ ਮਸ਼ੀਨ ਦੀ ਅਸਫਲਤਾ ਦੇ ਸਬੰਧ ਵਿੱਚ ਕਾਫ਼ੀ ਮਜ਼ਬੂਤ ਹੈ।


The main idea behind their scheme is the observation that many web-based applications can be written as a map operation followed by a reduce operation.

ਉਨ੍ਹਾਂ ਦੀ ਯੋਜਨਾ ਦੇ ਪਿੱਛੇ ਮੁੱਖ ਵਿਚਾਰ ਇਹ ਹੈ ਕਿ ਬਹੁਤ ਸਾਰੀਆਂ ਵੈੱਬ-ਅਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਇੱਕ ਮੈਪ ਓਪਰੇਸ਼ਨ ਦੇ ਬਾਅਦ ਇੱਕ ਰਿਡਿਊਸ ਓਪਰੇਸ਼ਨ ਦੇ ਤੌਰ 'ਤੇ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।


First, map is a function that takes a (key,value) pair as argument and returns a list of (key,value) pairs.

ਪਹਿਲਾਂ, ਮੈਪ ਇੱਕ ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਇੱਕ (ਕੁੰਜੀ, ਮੁੱਲ) ਜੋੜੇ ਨੂੰ ਦਲੀਲ ਵਜੋਂ ਲੈਂਦਾ ਹੈ ਅਤੇ (ਕੁੰਜੀ, ਮੁੱਲ) ਜੋੜਿਆਂ ਦੀ ਇੱਕ ਸੂਚੀ ਵਾਪਸ ਕਰਦਾ ਹੈ।


The argument keys and values may have different types from the result keys and values.

ਦਲੀਲ ਕੁੰਜੀਆਂ ਅਤੇ ਮੁੱਲਾਂ ਦੇ ਨਤੀਜੇ ਕੁੰਜੀਆਂ ਅਤੇ ਮੁੱਲਾਂ ਨਾਲੋਂ ਵੱਖਰੇ ਪ੍ਰਕਾਰ ਦੇ ਹੋ ਸਕਦੇ ਹਨ।


As an example, the argument may be a pair (n,s), where n is a positive integer and s is a string.

ਇੱਕ ਉਦਾਹਰਣ ਦੇ ਤੌਰ 'ਤੇ, ਦਲੀਲ ਇੱਕ ਜੋੜਾ (n,s) ਹੋ ਸਕਦੀ ਹੈ, ਜਿੱਥੇ n ਇੱਕ ਸਕਾਰਾਤਮਕ ਪੂਰਨ ਅੰਕ ਹੈ ਅਤੇ s ਇੱਕ ਸਤਰ ਹੈ।


Here is the contents of a text document and n is a small value, say 12, which specifies the length of words of interest.

ਇੱਥੇ ਇੱਕ ਟੈਕਸਟ ਦਸਤਾਵੇਜ਼ ਦੀ ਸਮੱਗਰੀ ਹੈ ਅਤੇ n ਇੱਕ ਛੋਟਾ ਮੁੱਲ ਹੈ, ਮੰਨ ਲਓ 12, ਜੋ ਦਿਲਚਸਪੀ ਵਾਲੇ ਸ਼ਬਦਾਂ ਦੀ ਲੰਬਾਈ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।


Function map may return a list of (w,c) pairs, where w is a word of length n or less in the document, and c is the number of occurrences of w in the document.

ਫੰਕਸ਼ਨ ਮੈਪ (w,c) ਜੋੜਿਆਂ ਦੀ ਇੱਕ ਸੂਚੀ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ, ਜਿੱਥੇ w ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਲੰਬਾਈ n ਜਾਂ ਘੱਟ ਦਾ ਇੱਕ ਸ਼ਬਦ ਹੈ, ਅਤੇ c ਦਸਤਾਵੇਜ਼ ਵਿੱਚ w ਦੀਆਂ ਘਟਨਾਵਾਂ ਦੀ ਗਿਣਤੀ ਹੈ।


Typically, map is applied not to a single document, but millions of documents at once.

ਆਮ ਤੌਰ 'ਤੇ, ਮੈਪ ਇੱਕ ਸਿੰਗਲ ਦਸਤਾਵੇਜ਼ 'ਤੇ ਨਹੀਂ, ਸਗੋਂ ਇੱਕੋ ਵਾਰ ਲੱਖਾਂ ਦਸਤਾਵੇਜ਼ਾਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।


This feature allows us to deploy the massive cluster of computers effectively.

ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਸਾਨੂੰ ਕੰਪਿਊਟਰਾਂ ਦੇ ਵਿਸ਼ਾਲ ਕਲੱਸਟਰ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਤੈਨਾਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।


Next, the outputs of all the maps, say M lists of (w,c) pairs for M documents, are aggregated into R lists where each list holds all the counts for a single word.

ਅੱਗੇ, ਸਾਰੇ ਮੈਪਾਂ ਦੇ ਆਉਟਪੁੱਟ, ਮੰਨ ਲਓ M ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ (w,c) ਜੋੜਿਆਂ ਦੀਆਂ M ਸੂਚੀਆਂ, R ਸੂਚੀਆਂ ਵਿੱਚ ਇਕੱਠੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਿੱਥੇ ਹਰੇਕ ਸੂਚੀ ਇੱਕੋ ਸ਼ਬਦ ਲਈ ਸਾਰੀਆਂ ਗਿਣਤੀਆਂ ਰੱਖਦੀ ਹੈ।


Now, reduce operation is applied to each of these R lists individually, producing R outputs.

ਹੁਣ, ਰਿਡਿਊਸ ਓਪਰੇਸ਼ਨ ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ R ਸੂਚੀ 'ਤੇ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ R ਆਉਟਪੁੱਟ ਪੈਦਾ ਹੁੰਦੇ ਹਨ।


In this example, a reduce operation might sum up the counts, which will tell us something about the most commonly occurring words in all the documents.

ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ, ਇੱਕ ਰਿਡਿਊਸ ਓਪਰੇਸ਼ਨ ਗਿਣਤੀ ਨੂੰ ਜੋੜ ਸਕਦਾ ਹੈ, ਜੋ ਸਾਨੂੰ ਸਾਰੇ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਸਭ ਤੋਂ ਆਮ ਤੌਰ 'ਤੇ ਆਉਣ ਵਾਲੇ ਸ਼ਬਦਾਂ ਬਾਰੇ ਕੁਝ ਦੱਸੇਗਾ।


In general, the user provides the code for both map and reduce, specifies the arguments over which they have to be applied, and suggests certain parameters for parallel processing.

ਆਮ ਤੌਰ 'ਤੇ, ਉਪਭੋਗਤਾ ਮੈਪ ਅਤੇ ਰਿਡਿਊਸ ਦੋਵਾਂ ਲਈ ਕੋਡ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਉਹਨਾਂ ਦਲੀਲਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ 'ਤੇ ਉਹਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਸਮਾਨਾਂਤਰ ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਕੁਝ ਮਾਪਦੰਡਾਂ ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ।


The run-time system takes care of the details of partitioning the input data, scheduling the program’s execution across a set of machines, handling machine failures, and managing the required inter-machine communication.

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


This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.

ਇਹ ਪ੍ਰੋਗਰਾਮਰਾਂ ਨੂੰ ਸਮਾਨਾਂਤਰ ਅਤੇ ਵੰਡੇ ਹੋਏ ਸਿਸਟਮਾਂ ਦੇ ਬਿਨਾਂ ਕਿਸੇ ਤਜਰਬੇ ਦੇ ਵੱਡੇ ਵੰਡੇ ਹੋਏ ਸਿਸਟਮ ਦੇ ਸਰੋਤਾਂ ਦੀ ਆਸਾਨੀ ਨਾਲ ਵਰਤੋਂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Distributed Grep “grep” is a unix utility that searches for a pattern in a given string (the string is typically a document).

ਵੰਡਿਆ ਗਿਆ ਗ੍ਰੈਪ “grep” ਇੱਕ ਯੂਨਿਕਸ ਉਪਯੋਗਤਾ ਹੈ ਜੋ ਇੱਕ ਦਿੱਤੇ ਸਤਰ (ਸਤਰ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਹੁੰਦਾ ਹੈ) ਵਿੱਚ ਇੱਕ ਪੈਟਰਨ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ।


In this example, a large number of documents have to be searched for a specific pattern.

ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ, ਇੱਕ ਖਾਸ ਪੈਟਰਨ ਲਈ ਵੱਡੀ ਗਿਣਤੀ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਖੋਜ ਕਰਨੀ ਪੈਂਦੀ ਹੈ।


Function map is applied to a document and a pattern, and it emits a line wherever there is a match.

ਫੰਕਸ਼ਨ ਮੈਪ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਇੱਕ ਪੈਟਰਨ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਇੱਕ ਲਾਈਨ ਨੂੰ ਉੱਥੇ ਜਾਰੀ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਇੱਕ ਮੈਚ ਹੁੰਦਾ ਹੈ।


Function reduce is the identity function; it merely copies the supplied argument to the output.

ਫੰਕਸ਼ਨ ਰਿਡਿਊਸ ਪਛਾਣ ਫੰਕਸ਼ਨ ਹੈ; ਇਹ ਸਿਰਫ਼ ਸਪਲਾਈ ਕੀਤੀ ਦਲੀਲ ਨੂੰ ਆਉਟਪੁੱਟ ਵਿੱਚ ਕਾਪੀ ਕਰਦਾ ਹੈ।


The query has the form π Address (σ p∧q (x)), where x is a relation yet to be defined.

ਇਸ ਸਵਾਲ ਦਾ ਫਾਰਮੂਲਾ π Address (σ p∧q (x)) ਹੈ, ਜਿੱਥੇ x ਇੱਕ ਰਿਲੇਸ਼ਨ ਹੈ ਜਿਸਨੂੰ ਅਜੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਣਾ ਹੈ।


Since x has to include information about Actor, Time and Address, we take x to be R ./ S ./ T.

ਕਿਉਂਕਿ x ਵਿੱਚ ਅਦਾਕਾਰ, ਸਮਾਂ ਅਤੇ ਪਤੇ ਬਾਰੇ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਸੀਂ x ਨੂੰ R ./ S ./ T ਮੰਨਦੇ ਹਾਂ।


Relation x includes many more attributes than the ones we desire; we will project away the unneeded attributes.

ਰਿਲੇਸ਼ਨ x ਵਿੱਚ ਉਹਨਾਂ ਨਾਲੋਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗੁਣ ਸ਼ਾਮਲ ਹਨ ਜੋ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ; ਅਸੀਂ ਬੇਲੋੜੇ ਗੁਣਾਂ ਨੂੰ ਪ੍ਰੋਜੈਕਟ ਕਰਾਂਗੇ।


The selection operation extracts the tuples which satisfy the predicate p∧q, and then the projection operation simply lists the addresses.

ਚੋਣ ਓਪਰੇਸ਼ਨ ਉਹ ਟਿਊਪਲ ਕੱਢਦਾ ਹੈ ਜੋ ਪ੍ਰੈਡੀਕੇਟ p∧q ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਦੇ ਹਨ, ਅਤੇ ਫਿਰ ਪ੍ਰੋਜੈਕਸ਼ਨ ਓਪਰੇਸ਼ਨ ਸਿਰਫ਼ ਪਤਿਆਂ ਦੀ ਸੂਚੀ ਬਣਾਉਂਦਾ ਹੈ।


So, the entire query is π Address (σ p∧q 〈R./S./T〉).

ਇਸ ਲਈ, ਪੂਰਾ ਸਵਾਲ π Address (σ p∧q 〈R./S./T〉) ਹੈ।


We transform this relational expression.

ਅਸੀਂ ਇਸ ਰਿਲੇਸ਼ਨਲ ਸਮੀਕਰਨ ਨੂੰ ਬਦਲਦੇ ਹਾਂ।


Compare the original query π Address (σ p∧q 〈R./S./T〉) with the transformed query π Address (〈π Title (σ p (R))./ π Theatre,Title (σ q (S))〉./T) in terms of the efficiency of evaluation.

ਮੂਲ ਸਵਾਲ π Address (σ p∧q 〈R./S./T〉) ਦੀ ਤੁਲਨਾ ਬਦਲੇ ਹੋਏ ਸਵਾਲ π Address (〈π Title (σ p (R))./ π Theatre,Title (σ q (S))〉./T) ਨਾਲ ਮੁਲਾਂਕਣ ਦੀ ਕੁਸ਼ਲਤਾ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਕਰੋ।


The original query would first compute R ./ S ./ T, a very expensive operation involving three tables.

ਮੂਲ ਸਵਾਲ ਸਭ ਤੋਂ ਪਹਿਲਾਂ R ./ S ./ T ਦੀ ਗਣਨਾ ਕਰੇਗਾ, ਇੱਕ ਬਹੁਤ ਮਹਿੰਗਾ ਓਪਰੇਸ਼ਨ ਜਿਸ ਵਿੱਚ ਤਿੰਨ ਟੇਬਲ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ।


Then selection operation will go over all the tuples again, and the projection incurs a small cost.

ਫਿਰ ਚੋਣ ਓਪਰੇਸ਼ਨ ਦੁਬਾਰਾ ਸਾਰੇ ਟਿਊਪਲ 'ਤੇ ਜਾਵੇਗਾ, ਅਤੇ ਪ੍ਰੋਜੈਕਸ਼ਨ ਇੱਕ ਛੋਟਾ ਜਿਹਾ ਖਰਚਾ ਲਗਾਉਂਦਾ ਹੈ।


In the transformed expression, selections are applied as soon as possible, in σ p (R) and σ q (S).

ਬਦਲੇ ਹੋਏ ਸਮੀਕਰਨ ਵਿੱਚ, ਚੋਣਾਂ ਜਿੰਨੀ ਜਲਦੀ ਹੋ ਸਕੇ ਲਾਗੂ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, σ p (R) ਅਤੇ σ q (S) ਵਿੱਚ।


This results in much smaller relations, 3 tuples in σ p (R) and 3 in σ q (S).

ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਬਹੁਤ ਛੋਟੇ ਰਿਲੇਸ਼ਨ ਹੁੰਦੇ ਹਨ, σ p (R) ਵਿੱਚ 3 ਟਿਊਪਲ ਅਤੇ σ q (S) ਵਿੱਚ 3।


Next, projections will reduce the number of columns in both relations, though not the number of rows.

ਅੱਗੇ, ਪ੍ਰੋਜੈਕਸ਼ਨ ਦੋਵਾਂ ਰਿਲੇਸ਼ਨਾਂ ਵਿੱਚ ਕਾਲਮਾਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਘਟਾ ਦੇਣਗੇ, ਹਾਲਾਂਕਿ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ ਨਹੀਂ।


The join of the resulting relation is much more efficient, being applied over smaller tables.

ਨਤੀਜੇ ਵਜੋਂ ਰਿਲੇਸ਼ਨ ਦਾ ਜੁੜਨਾ ਬਹੁਤ ਜ਼ਿਆਦਾ ਕੁਸ਼ਲ ਹੈ, ਛੋਟੇ ਟੇਬਲਾਂ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।


Finally, the join with T and projection over Address is, again, over smaller tables.

ਅੰਤ ਵਿੱਚ, T ਨਾਲ ਜੁੜਨਾ ਅਤੇ ਐਡਰੈੱਸ ਉੱਤੇ ਪ੍ਰੋਜੈਕਸ਼ਨ, ਦੁਬਾਰਾ, ਛੋਟੇ ਟੇਬਲਾਂ ਉੱਤੇ ਹੈ।


There is no way to compute with the data.

ਡੇਟਾ ਨਾਲ ਗਣਨਾ ਕਰਨ ਦਾ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਹੈ।


For example, we cannot ask: How many movies has Will Smith acted in since 1996.

ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ ਇਹ ਨਹੀਂ ਪੁੱਛ ਸਕਦੇ: ਵਿਲ ਸਮਿਥ ਨੇ 1996 ਤੋਂ ਕਿੰਨੀਆਂ ਫਿਲਮਾਂ ਵਿੱਚ ਕੰਮ ਕੀਤਾ ਹੈ।


To answer such questions we have to count (or add), and none of the operations allow that.

ਅਜਿਹੇ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਸਾਨੂੰ ਗਿਣਤੀ (ਜਾਂ ਜੋੜ) ਕਰਨੀ ਪਵੇਗੀ, ਅਤੇ ਕੋਈ ਵੀ ਓਪਰੇਸ਼ਨ ਇਸਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦਾ।


We describe two classes of operations, Aggregation and Grouping, to do such processing.

ਅਸੀਂ ਅਜਿਹੇ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਕਰਨ ਲਈ ਦੋ ਤਰ੍ਹਾਂ ਦੇ ਓਪਰੇਸ਼ਨਾਂ, ਐਗਰੀਗੇਸ਼ਨ ਅਤੇ ਗਰੁੱਪਿੰਗ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹਾਂ।


Aggregation operations combine the values in a column in a variety of ways.

ਐਗਰੀਗੇਸ਼ਨ ਓਪਰੇਸ਼ਨ ਕਈ ਤਰੀਕਿਆਂ ਨਾਲ ਇੱਕ ਕਾਲਮ ਵਿੱਚ ਮੁੱਲਾਂ ਨੂੰ ਜੋੜਦੇ ਹਨ।


Grouping creates a number of subrelations from a relation based on some specified attribute values, applies a specified aggregation operation on each, and stores the result in a relation.

ਗਰੁੱਪਿੰਗ ਕੁਝ ਨਿਰਧਾਰਤ ਗੁਣ ਮੁੱਲਾਂ ਦੇ ਅਧਾਰ 'ਤੇ ਇੱਕ ਰਿਲੇਸ਼ਨ ਤੋਂ ਕਈ ਸਬ-ਰਿਲੇਸ਼ਨ ਬਣਾਉਂਦੀ ਹੈ, ਹਰੇਕ 'ਤੇ ਇੱਕ ਨਿਰਧਾਰਤ ਐਗਰੀਗੇਸ਼ਨ ਓਪਰੇਸ਼ਨ ਲਾਗੂ ਕਰਦੀ ਹੈ, ਅਤੇ ਨਤੀਜੇ ਨੂੰ ਇੱਕ ਰਿਲੇਸ਼ਨ ਵਿੱਚ ਸਟੋਰ ਕਰਦੀ ਹੈ।


The code defines functions for prefix sum calculation.

ਇਹ ਕੋਡ ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਦੀ ਗਣਨਾ ਲਈ ਫੰਕਸ਼ਨ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।


Parallel recursion is important in this context.

ਇਸ ਸੰਦਰਭ ਵਿੱਚ ਸਮਾਨਾਂਤਰ ਰੀਕਰਸ਼ਨ ਮਹੱਤਵਪੂਰਨ ਹੈ।


The algorithm uses zip as a primary operator.

ਐਲਗੋਰਿਦਮ ਜ਼ਿਪ ਨੂੰ ਇੱਕ ਪ੍ਰਾਇਮਰੀ ਓਪਰੇਟਰ ਵਜੋਂ ਵਰਤਦਾ ਹੈ।


Processors are used at different levels.

ਪ੍ਰੋਸੈਸਰ ਵੱਖ-ਵੱਖ ਪੱਧਰਾਂ 'ਤੇ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।


Data transmissions occur between processors.

ਪ੍ਰੋਸੈਸਰਾਂ ਵਿਚਕਾਰ ਡਾਟਾ ਪ੍ਰਸਾਰਣ ਹੁੰਦਾ ਹੈ।


ਹਰੇਕ ਪ੍ਰੋਸੈਸਰ ਆਪਣਾ ਡਾਟਾ ਅਪਡੇਟ ਕਰਦਾ ਹੈ।


The Ladner-Fischer scheme is another approach.

ਲੈਡਨਰ-ਫਿਸ਼ਰ ਸਕੀਮ ਇੱਕ ਹੋਰ ਪਹੁੰਚ ਹੈ।


Prefix sum is a fundamental concept in parallel computing.

ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਸਮਾਨਾਂਤਰ ਕੰਪਿਊਟਿੰਗ ਵਿੱਚ ਇੱਕ ਬੁਨਿਆਦੀ ਸੰਕਲਪ ਹੈ।


ਅਸੀਂ ਬਾਅਦ ਵਿੱਚ ਇੱਕ ਰਸਮੀ ਪਰਿਭਾਸ਼ਾ ਦੇਵਾਂਗੇ।


The defining equation for prefix sum is crucial.

ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਲਈ ਪਰਿਭਾਸ਼ਿਤ ਸਮੀਕਰਨ ਮਹੱਤਵਪੂਰਨ ਹੈ।


The operator is not necessarily commutative.

ਓਪਰੇਟਰ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਕਮਿਊਟੇਟਿਵ ਨਹੀਂ ਹੈ।


The uniqueness of the solution can be proved.

ਹੱਲ ਦੀ ਵਿਲੱਖਣਤਾ ਸਾਬਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


ਹੇਠਾਂ ਦਿੱਤੇ ਸਮੀਕਰਨ 'ਤੇ ਗੌਰ ਕਰੋ।


ਦੋਵੇਂ ਸਕੀਮਾਂ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਰੀਕਰਸਿਵ ਹਨ।


Our formulations will highlight both parallelism and recursion.

ਸਾਡੇ ਫਾਰਮੂਲੇ ਦੋਵੇਂ ਸਮਾਨਾਂਤਰਤਾ ਅਤੇ ਰੀਕਰਸ਼ਨ ਨੂੰ ਉਜਾਗਰ ਕਰਨਗੇ।


ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਸਮੱਸਿਆ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


We introduce an operator for this purpose.

ਅਸੀਂ ਇਸ ਉਦੇਸ਼ ਲਈ ਇੱਕ ਓਪਰੇਟਰ ਪੇਸ਼ ਕਰਦੇ ਹਾਂ।


The rhs of the equation may not be the same.

ਸਮੀਕਰਨ ਦਾ rhs ਇੱਕੋ ਜਿਹਾ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।


We define ps L to be the unique solution.

ਅਸੀਂ ps L ਨੂੰ ਵਿਲੱਖਣ ਹੱਲ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਾਂ।


This is exactly the definition of the function.

ਇਹ ਬਿਲਕੁਲ ਫੰਕਸ਼ਨ ਦੀ ਪਰਿਭਾਸ਼ਾ ਹੈ।


The core for the empty prefix is undefined.

ਖਾਲੀ ਪ੍ਰੀਫਿਕਸ ਲਈ ਕੋਰ ਅਨਿਸ਼ਚਿਤ ਹੈ।


For a prefix of length 1, the core is empty.

ਲੰਬਾਈ 1 ਦੇ ਪ੍ਰੀਫਿਕਸ ਲਈ, ਕੋਰ ਖਾਲੀ ਹੈ।


ਅਸੀਂ ਕੋਰਾਂ ਨੂੰ ਐਰੇ d ਵਿੱਚ ਸਟੋਰ ਕਰਦੇ ਹਾਂ।


The following program has the invariant that the cores of all prefixes up to and including p[0..j] are known.

ਹੇਠਾਂ ਦਿੱਤੇ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਇਹ ਇਨਵੇਰੀਐਂਟ ਹੈ ਕਿ p[0..j] ਸਮੇਤ ਸਾਰੇ ਪ੍ਰੀਫਿਕਸ ਦੇ ਕੋਰ ਜਾਣੇ ਜਾਂਦੇ ਹਨ।


The goal of the program is to next compute the core of us where s = p[j].

ਪ੍ਰੋਗਰਾਮ ਦਾ ਟੀਚਾ ਅਗਲਾ us ਦਾ ਕੋਰ ਕੰਪਿਊਟ ਕਰਨਾ ਹੈ ਜਿੱਥੇ s = p[j] ਹੈ।


If this check succeeds, we have found the core of us, i.e., of p[0..j+1].

ਜੇਕਰ ਇਹ ਜਾਂਚ ਸਫਲ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਅਸੀਂ us ਦਾ ਕੋਰ ਲੱਭ ਲਿਆ ਹੈ, ਭਾਵ, p[0..j+1] ਦਾ।


We show that the program for core computation runs in linear time in the length of pattern p.

ਅਸੀਂ ਦਿਖਾਉਂਦੇ ਹਾਂ ਕਿ ਕੋਰ ਕੰਪਿਊਟੇਸ਼ਨ ਲਈ ਪ੍ਰੋਗਰਾਮ ਪੈਟਰਨ p ਦੀ ਲੰਬਾਈ ਵਿੱਚ ਰੇਖਿਕ ਸਮੇਂ ਵਿੱਚ ਚੱਲਦਾ ਹੈ।


Specifically, execution of each guarded command increases 2j−i.

ਖਾਸ ਤੌਰ 'ਤੇ, ਹਰੇਕ ਗਾਰਡਡ ਕਮਾਂਡ ਦਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ 2j−i ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।


We show that you can match pattern p against text t by computing the cores of all prefixes of pt.

ਅਸੀਂ ਦਿਖਾਉਂਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ pt ਦੇ ਸਾਰੇ ਪ੍ਰੀਫਿਕਸ ਦੇ ਕੋਰਾਂ ਦੀ ਗਣਨਾ ਕਰਕੇ ਪੈਟਰਨ p ਨੂੰ ਟੈਕਸਟ t ਨਾਲ ਮੇਲ ਕਰ ਸਕਦੇ ਹੋ।


The next string matching algorithm we study is due to Boyer and Moore.

ਅਗਲਾ ਸਟ੍ਰਿੰਗ ਮੈਚਿੰਗ ਐਲਗੋਰਿਦਮ ਜਿਸਦਾ ਅਸੀਂ ਅਧਿਐਨ ਕਰਦੇ ਹਾਂ, ਉਹ ਬੋਅਰ ਅਤੇ ਮੂਰ ਦਾ ਹੈ।


It has the best performance, on the average, of all known algorithms for this problem.

ਇਸ ਸਮੱਸਿਆ ਲਈ ਸਾਰੇ ਜਾਣੇ-ਪਛਾਣੇ ਐਲਗੋਰਿਦਮਾਂ ਵਿੱਚ ਔਸਤਨ ਸਭ ਤੋਂ ਵਧੀਆ ਪ੍ਰਦਰਸ਼ਨ ਹੈ।


At any moment, imagine that the pattern is aligned with a portion of the text of the same length.

ਕਿਸੇ ਵੀ ਸਮੇਂ, ਕਲਪਨਾ ਕਰੋ ਕਿ ਪੈਟਰਨ ਉਸੇ ਲੰਬਾਈ ਦੇ ਟੈਕਸਟ ਦੇ ਇੱਕ ਹਿੱਸੇ ਨਾਲ ਇਕਸਾਰ ਹੈ।


Whenever there is a mismatch, the pattern is shifted to the right.

ਜਦੋਂ ਵੀ ਕੋਈ ਮੇਲ ਨਹੀਂ ਹੁੰਦਾ, ਤਾਂ ਪੈਟਰਨ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਸ਼ਿਫਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The overall structure of the program is a loop that has the invariant: Q1: Every occurrence of p in t that starts before l has been recorded.

ਪ੍ਰੋਗਰਾਮ ਦੀ ਸਮੁੱਚੀ ਬਣਤਰ ਇੱਕ ਲੂਪ ਹੈ ਜਿਸ ਵਿੱਚ ਇਨਵੇਰੀਐਂਟ ਹੈ: Q1: t ਵਿੱਚ p ਦੀ ਹਰ ਘਟਨਾ ਜੋ l ਤੋਂ ਪਹਿਲਾਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਰਿਕਾਰਡ ਕੀਤੀ ਗਈ ਹੈ।


We introduce variable j, 0 ≤ j < m, with the meaning that the suffix of p starting at position j matches the corresponding portion of the alignment.

ਅਸੀਂ ਵੇਰੀਏਬਲ j, 0 ≤ j < m ਪੇਸ਼ ਕਰਦੇ ਹਾਂ, ਜਿਸਦਾ ਅਰਥ ਹੈ ਕਿ ਸਥਿਤੀ j 'ਤੇ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲਾ p ਦਾ ਸਫਿਕਸ ਅਲਾਈਨਮੈਂਟ ਦੇ ਸੰਬੰਧਿਤ ਹਿੱਸੇ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।


Then, we match the symbols from right to left of the pattern (against the corresponding symbols in the alignment) until we find a mismatch or the whole pattern is matched.

ਫਿਰ, ਅਸੀਂ ਪੈਟਰਨ ਦੇ ਸੱਜੇ ਤੋਂ ਖੱਬੇ ਪਾਸੇ ਦੇ ਪ੍ਰਤੀਕਾਂ (ਅਲਾਈਨਮੈਂਟ ਵਿੱਚ ਸੰਬੰਧਿਤ ਪ੍ਰਤੀਕਾਂ ਦੇ ਵਿਰੁੱਧ) ਨਾਲ ਮੇਲ ਕਰਦੇ ਹਾਂ ਜਦੋਂ ਤੱਕ ਸਾਨੂੰ ਕੋਈ ਮੇਲ ਨਹੀਂ ਮਿਲਦਾ ਜਾਂ ਪੂਰਾ ਪੈਟਰਨ ਮੇਲ ਨਹੀਂ ਹੁੰਦਾ।


For better performance, l should be increased as much as possible in each case.

ਬਿਹਤਰ ਪ੍ਰਦਰਸ਼ਨ ਲਈ, ਹਰੇਕ ਮਾਮਲੇ ਵਿੱਚ l ਨੂੰ ਜਿੰਨਾ ਸੰਭਵ ਹੋ ਸਕੇ ਵਧਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।


We consider two heuristics, each of which can be used to calculate a value of l′′.

ਅਸੀਂ ਦੋ ਹਿਊਰਿਸਟਿਕਸ 'ਤੇ ਵਿਚਾਰ ਕਰਦੇ ਹਾਂ, ਜਿਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਦੀ ਵਰਤੋਂ l′′ ਦਾ ਮੁੱਲ ਕੈਲਕੂਲੇਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


The first heuristic, called the bad symbol heuristic, exploits the fact that we have a mismatch at position j−1 of the pattern.

ਪਹਿਲਾ ਹਿਊਰਿਸਟਿਕ, ਜਿਸਨੂੰ ਬੁਰਾ ਪ੍ਰਤੀਕ ਹਿਊਰਿਸਟਿਕ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਤੱਥ ਦਾ ਫਾਇਦਾ ਉਠਾਉਂਦਾ ਹੈ ਕਿ ਸਾਡੇ ਕੋਲ ਪੈਟਰਨ ਦੀ ਸਥਿਤੀ j−1 'ਤੇ ਇੱਕ ਮੇਲ ਨਹੀਂ ਹੈ।


The second heuristic, called the good suffix heuristic, uses the fact that we have matched a suffix of p with the suffix of the alignment.

ਦੂਜਾ ਹਿਊਰਿਸਟਿਕ, ਜਿਸਨੂੰ ਚੰਗਾ ਸਫਿਕਸ ਹਿਊਰਿਸਟਿਕ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਤੱਥ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿ ਅਸੀਂ p ਦੇ ਇੱਕ ਸਫਿਕਸ ਨੂੰ ਅਲਾਈਨਮੈਂਟ ਦੇ ਸਫਿਕਸ ਨਾਲ ਮੇਲ ਕੀਤਾ ਹੈ।


The function 'rev' reverses a powerlist.

ਫ਼ੰਕਸ਼ਨ 'rev' ਇੱਕ ਪਾਵਰਲਿਸਟ ਨੂੰ ਉਲਟਾ ਕਰਦਾ ਹੈ।


Scalar functions operate on individual elements.

ਸਕੇਲਰ ਫੰਕਸ਼ਨ ਵਿਅਕਤੀਗਤ ਤੱਤਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ।


We will discuss the Fast Fourier Transform (FFT) algorithm.

ਅਸੀਂ ਫਾਸਟ ਫੂਰੀਅਰ ਟ੍ਰਾਂਸਫਾਰਮ (FFT) ਐਲਗੋਰਿਦਮ ਬਾਰੇ ਚਰਚਾ ਕਰਾਂਗੇ।


The base case of a powerlist is a singleton list, not an empty list.

ਇੱਕ ਪਾਵਰਲਿਸਟ ਦਾ ਅਧਾਰ ਕੇਸ ਇੱਕ ਸਿੰਗਲਟਨ ਸੂਚੀ ਹੈ, ਖਾਲੀ ਸੂਚੀ ਨਹੀਂ।


The recursive definition of a powerlist uses the operators | and ./.

ਇੱਕ ਪਾਵਰਲਿਸਟ ਦੀ ਰਿਕਰਸਿਵ ਪਰਿਭਾਸ਼ਾ ਓਪਰੇਟਰਾਂ | ਅਤੇ ./ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The length of a powerlist is always a power of 2.

ਇੱਕ ਪਾਵਰਲਿਸਟ ਦੀ ਲੰਬਾਈ ਹਮੇਸ਼ਾ 2 ਦੀ ਘਾਤ ਹੁੰਦੀ ਹੈ।


Inductive proofs are often used to prove properties of powerlists.

ਪਾਵਰਲਿਸਟਾਂ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਾਬਤ ਕਰਨ ਲਈ ਅਕਸਰ ਇੰਡਕਟਿਵ ਸਬੂਤਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The shape and type of scalar elements define the structure of a powerlist.

ਸਕੇਲਰ ਤੱਤਾਂ ਦਾ ਆਕਾਰ ਅਤੇ ਕਿਸਮ ਇੱਕ ਪਾਵਰਲਿਸਟ ਦੀ ਬਣਤਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ।


We will show a few small algorithms on powerlists.

ਅਸੀਂ ਪਾਵਰਲਿਸਟਾਂ 'ਤੇ ਕੁਝ ਛੋਟੇ ਐਲਗੋਰਿਦਮ ਦਿਖਾਵਾਂਗੇ।


The function 'rr' rotates a powerlist to the right.

ਫ਼ੰਕਸ਼ਨ 'rr' ਇੱਕ ਪਾਵਰਲਿਸਟ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਘੁੰਮਾਉਂਦਾ ਹੈ।


The function 'ls' defines a permutation of the powerlist.

ਫ਼ੰਕਸ਼ਨ 'ls' ਪਾਵਰਲਿਸਟ ਦੀ ਇੱਕ ਪਰਮੂਟੇਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।


The function 'inv' reverses the order of elements.

ਫ਼ੰਕਸ਼ਨ 'inv' ਤੱਤਾਂ ਦੇ ਕ੍ਰਮ ਨੂੰ ਉਲਟਾ ਕਰਦਾ ਹੈ।


Reduction is a higher-order function in the linear list theory.

ਘਟਾਓ ਰੇਖਿਕ ਸੂਚੀ ਸਿਧਾਂਤ ਵਿੱਚ ਇੱਕ ਉੱਚ-ਕ੍ਰਮ ਫੰਕਸ਼ਨ ਹੈ।


The Gray code sequence is a sequence of binary strings.

ਗ੍ਰੇ ਕੋਡ ਸੀਕੁਐਂਸ ਬਾਈਨਰੀ ਸਤਰਾਂ ਦਾ ਇੱਕ ਕ੍ਰਮ ਹੈ।


A polynomial can be represented by a powerlist.

ਇੱਕ ਪੌਲੀਨੋਮੀਅਲ ਨੂੰ ਇੱਕ ਪਾਵਰਲਿਸਟ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।


The Fast Fourier Transform (FFT) is used for polynomial evaluation.

ਫਾਸਟ ਫੂਰੀਅਰ ਟ੍ਰਾਂਸਫਾਰਮ (FFT) ਦੀ ਵਰਤੋਂ ਪੌਲੀਨੋਮੀਅਲ ਮੁਲਾਂਕਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The inverse Fourier Transform (IFT) is derived from the FFT.

ਇਨਵਰਸ ਫੂਰੀਅਰ ਟ੍ਰਾਂਸਫਾਰਮ (IFT) FFT ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ।


Batcher sort is a method for merging sorted lists.

ਬੈਚਰ ਸੌਰਟ ਕ੍ਰਮਬੱਧ ਸੂਚੀਆਂ ਨੂੰ ਮਿਲਾਉਣ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ।


The function 'merge' creates a single sorted powerlist.

ਫ਼ੰਕਸ਼ਨ 'merge' ਇੱਕ ਸਿੰਗਲ ਕ੍ਰਮਬੱਧ ਪਾਵਰਲਿਸਟ ਬਣਾਉਂਦਾ ਹੈ।


Bitonic sort is another sorting algorithm.

ਬਿਟੋਨਿਕ ਸੌਰਟ ਇੱਕ ਹੋਰ ਛਾਂਟਣ ਵਾਲਾ ਐਲਗੋਰਿਦਮ ਹੈ।


The algorithms in this paper use an inductive theorem prover.

ਇਸ ਪੇਪਰ ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਐਲਗੋਰਿਦਮ ਇੱਕ ਇੰਡਕਟਿਵ ਥਿਊਰਮ ਪ੍ਰੋਵਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


They are extending their theorem prover.

ਉਹ ਆਪਣੇ ਥਿਊਰਮ ਪ੍ਰੋਵਰ ਦਾ ਵਿਸਤਾਰ ਕਰ ਰਹੇ ਹਨ।


One of the fundamental problems is to devise compilation strategies.

ਮੁੱਖ ਸਮੱਸਿਆਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਕੰਪਾਈਲੇਸ਼ਨ ਰਣਨੀਤੀਆਂ ਬਣਾਉਣਾ ਹੈ।


The architecture that is the closest conceptually is the hypercube.

ਜੋ ਆਰਕੀਟੈਕਚਰ ਸੰਕਲਪ ਦੇ ਸਭ ਤੋਂ ਨੇੜੇ ਹੈ, ਉਹ ਹਾਈਪਰਕਿਊਬ ਹੈ।


Combinational circuit verification is an area in which the powerlist notation may be fruitfully employed.

ਕੰਬੀਨੇਸ਼ਨਲ ਸਰਕਟ ਵੈਰੀਫਿਕੇਸ਼ਨ ਇੱਕ ਅਜਿਹਾ ਖੇਤਰ ਹੈ ਜਿਸ ਵਿੱਚ ਪਾਵਰਲਿਸਟ ਨੋਟੇਸ਼ਨ ਨੂੰ ਲਾਭਦਾਇਕ ਢੰਗ ਨਾਲ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।


Adams has proved the correctness of adder circuits using this notation.

ਐਡਮਜ਼ ਨੇ ਇਸ ਨੋਟੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਡਰ ਸਰਕਟਾਂ ਦੀ ਸਹੀਤਾ ਸਾਬਤ ਕੀਤੀ ਹੈ।


A ripple-carry adder is typically easy to describe and prove.

ਇੱਕ ਰਿਪਲ-ਕੈਰੀ ਐਡਰ ਆਮ ਤੌਰ 'ਤੇ ਵਰਣਨ ਅਤੇ ਸਾਬਤ ਕਰਨਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ।


Adams has described both circuits in our notation.

ਐਡਮਜ਼ ਨੇ ਸਾਡੀ ਨੋਟੇਸ਼ਨ ਵਿੱਚ ਦੋਵੇਂ ਸਰਕਟਾਂ ਦਾ ਵਰਣਨ ਕੀਤਾ ਹੈ।


He obtains a succinct description of the carry-lookahead circuit.

ਉਹ ਕੈਰੀ-ਲੁਕਅਹੇਡ ਸਰਕਟ ਦਾ ਇੱਕ ਸੰਖੇਪ ਵਰਣਨ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।


ਮਨਮਰਜ਼ੀ ਲੰਬਾਈ ਦੀਆਂ ਪਾਵਰਲਿਸਟਾਂ


Steele suggests padding enough “dummy” elements.

ਸਟੀਲ ਕਾਫ਼ੀ “ਡਮੀ” ਤੱਤਾਂ ਨੂੰ ਪੈਡ ਕਰਨ ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ।


Another approach is based on the observation.

ਇੱਕ ਹੋਰ ਪਹੁੰਚ ਇਸ ਨਿਰੀਖਣ 'ਤੇ ਅਧਾਰਤ ਹੈ।


For instance, the following function, rev, reverses a list.

ਉਦਾਹਰਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤਾ ਫੰਕਸ਼ਨ, rev, ਇੱਕ ਸੂਚੀ ਨੂੰ ਉਲਟਾਉਂਦਾ ਹੈ।


The last line of this definition applies to a non-singleton list.

ਇਸ ਪਰਿਭਾਸ਼ਾ ਦੀ ਆਖਰੀ ਲਾਈਨ ਇੱਕ ਗੈਰ-ਸਿੰਗਲਟਨ ਸੂਚੀ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ।


Similarly, the function lf for prefix sum may be defined.

ਇਸੇ ਤਰ੍ਹਾਂ, ਪ੍ਰੀਫਿਕਸ ਜੋੜ ਲਈ ਫੰਕਸ਼ਨ lf ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


The Interplay between Sequential and Parallel Computations.

ਕ੍ਰਮਵਾਰ ਅਤੇ ਸਮਾਨਾਂਤਰ ਕੰਪਿਊਟੇਸ਼ਨਾਂ ਵਿਚਕਾਰ ਆਪਸੀ ਤਾਲਮੇਲ।


Powerlists have proved to be highly successful.

ਪਾਵਰਲਿਸਟਾਂ ਬਹੁਤ ਸਫਲ ਸਾਬਤ ਹੋਈਆਂ ਹਨ।


While Fast Fourier Transform and Batcher merge represent highly parallel computations.

ਜਦੋਂ ਕਿ ਫਾਸਟ ਫੂਰੀਅਰ ਟ੍ਰਾਂਸਫਾਰਮ ਅਤੇ ਬੈਚਰ ਮਰਜ ਬਹੁਤ ਹੀ ਸਮਾਨਾਂਤਰ ਕੰਪਿਊਟੇਸ਼ਨਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।


Gaussian elimination represents a mixture.

ਗੌਸੀਅਨ ਐਲੀਮੀਨੇਸ਼ਨ ਇੱਕ ਮਿਸ਼ਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।


The powerlist notation can be integrated into a language.

ਪਾਵਰਲਿਸਟ ਨੋਟੇਸ਼ਨ ਨੂੰ ਇੱਕ ਭਾਸ਼ਾ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।