Red (programming language)
લાલ એ એક પ્રોગ્રામિંગ ભાષા છે જે પ્રોગ્રામિંગ ભાષા રિબોલની મર્યાદાઓને દૂર કરવા માટે રચાયેલ છે. રેડ 2011 માં નેનાદ રાકોસેવિક દ્વારા રજૂ કરવામાં આવી હતી, અને તે એક અનિવાર્ય અને કાર્યાત્મક પ્રોગ્રામિંગ ભાષા છે. તેનું વાક્યરચના અને સામાન્ય ઉપયોગ અર્થઘટન કરાયેલ રિબોલ ભાષાને ઓવરલેપ કરે છે. રેડની અમલીકરણ પસંદગીઓ સંપૂર્ણ સ્ટેક પ્રોગ્રામિંગ લેંગ્વેજ બનાવવાનો ઇરાદો ધરાવે છેઃ રેડનો ઉપયોગ અત્યંત ઉચ્ચ-સ્તરના પ્રોગ્રામિંગ (ડીએસએલ અને જીયુઆઈ) તેમજ નિમ્ન-સ્તરના પ્રોગ્રામિંગ (ઓપરેટિંગ સિસ્ટમ્સ અને ડિવાઇસ ડ્રાઇવરો) માટે થઈ શકે છે. અભિગમની ચાવી એ છે કે ભાષાના બે ભાગો છેઃ લાલ/પ્રણાલી અને લાલ. લાલ/સિસ્ટમ સી જેવી જ છે, પરંતુ ઉદાહરણ તરીકે રિબોલ લેક્સિકલ માળખામાં પેક કરવામાં આવે છે, તેના બદલે કોઈ લખી શકે છે. લાલ એ રીબોલ જેવી સિમેન્ટિક્સ સાથે મેટા-પ્રોગ્રામિંગ માટે સક્ષમ એક સમરૂપ ભાષા છે. રેડની રનટાઇમ લાઇબ્રેરી રેડ/સિસ્ટમમાં લખાયેલી છે, અને તે એક વર્ણસંકર અભિગમનો ઉપયોગ કરે છેઃ તે જે સ્થિર રીતે અનુમાન કરી શકે છે તેનું સંકલન કરે છે અને અન્યથા એમ્બેડેડ દુભાષિયાનો ઉપયોગ કરે છે. પ્રોજેક્ટ રોડમેપમાં વચ્ચેના કેસો માટે જસ્ટ-ઇન-ટાઇમ કમ્પાઇલરનો સમાવેશ થાય છે, પરંતુ આનો હજુ સુધી અમલ કરવામાં આવ્યો નથી. રેડ અન્ય કોઈપણ ટૂલચેનથી સ્વતંત્ર રહેવાનો પ્રયાસ કરે છે; તે તેની પોતાની કોડ જનરેશન કરે છે. તેથી રેડ પ્રોગ્રામ્સને તે સપોર્ટ કરે છે તે કોઈપણ પ્લેટફોર્મ પરથી કમાન્ડ-લાઇન સ્વીચ દ્વારા ક્રોસ-કમ્પાઇલ કરવું શક્ય છે. લાલ અને લાલ/સિસ્ટમ બંનેને સુધારેલા બીએસડી લાઇસન્સ હેઠળ ઓપન સોર્સ સોફ્ટવેર તરીકે વિતરિત કરવામાં આવે છે. રનટાઇમ લાઈબ્રેરી વધુ અનુકૂળ બુસ્ટ સોફ્ટવેર લાઇસન્સ હેઠળ વિતરિત કરવામાં આવે છે. આવૃત્તિ 0.6.4 મુજબ રેડમાં કચરો સંગ્રહ કરનાર "ધ સિમ્પલ જીસી" નો સમાવેશ થાય છે. નેધરલેન્ડ્સમાં ફેબ્રુઆરી 2011માં રિબોલ એન્ડ બોરોન પરિષદમાં તેના લેખક નેનાદ રાકોસેવિક દ્વારા રેડની રજૂઆત કરવામાં આવી હતી. સપ્ટેમ્બર 2011 માં, સોફ્ટવેર સ્વતંત્રતા દિવસ 2011 દરમિયાન મોટા પ્રેક્ષકો સમક્ષ લાલ પ્રોગ્રામિંગ ભાષા રજૂ કરવામાં આવી હતી. રાકોસેવિક લાંબા સમયથી રિબોલ વિકાસકર્તા છે જે શેયેન એચટીટીપી સર્વરના નિર્માતા તરીકે ઓળખાય છે. લાક્ષણિકતાઓ રેડની વાક્યરચના અને શબ્દાર્થ રિબોલની ખૂબ નજીક છે. રિબોલની જેમ, તે મેટાપ્રોગ્રામિંગ અને ડોમેન-વિશિષ્ટ ભાષાઓ (ડી. એસ. એલ.) ને મજબૂત રીતે ટેકો આપે છે અને તેથી બોલી (એમ્બેડેડ ડી. એસ. એલ. બનાવવા) માટે અત્યંત કાર્યક્ષમ સાધન છે. લાલમાં લાલ/સિસ્ટમ નામની બોલીનો સમાવેશ થાય છે, જે સી-સ્તરની ભાષા છે જે સિસ્ટમ પ્રોગ્રામિંગ સુવિધાઓ પૂરી પાડે છે. લાલ રંગને અન્ય સાધનો અને ભાષાઓ સાથે ડી. એલ. એલ. (લિબરેડ) તરીકે સંકલિત કરવો સરળ છે અને ખૂબ જ હળવો (લગભગ 1 એમબી) છે. તે વિવિધ પ્લેટફોર્મ્સ પર ક્રોસ-કમ્પાઇલ કરવામાં પણ સક્ષમ છે (નીચે ક્રોસ કમ્પાઇલેશન વિભાગ જુઓ) અને પ્લેટફોર્મ્સ માટે પેકેજો બનાવવા માટે સક્ષમ છે જેની તેમને જરૂર છે (દા. ત., એન્ડ્રોઇડ પર APK). લાલ રંગમાં અંતર્ગત પ્રતિક્રિયાશીલ ડેટાફ્લો એન્જિન પર આધારિત સંપૂર્ણ પ્રતિક્રિયાશીલ ક્રોસ-પ્લેટફોર્મ GUI સિસ્ટમ, SVG સાથે તુલનાત્મક 2D રેખાંકન બોલી, સંકલન-સમય અને રનટાઇમ મેક્રો સપોર્ટ અને 40 થી વધુ પ્રમાણભૂત ડેટા પ્રકારોનો પણ સમાવેશ થાય છે. સોફ્ટવેર સ્વતંત્રતા દિવસ 2011 પર રજૂ કરાયેલા રેડના લક્ષ્યોની યાદી નીચે મુજબ છેઃ સરળતા ("કોડ લખવા માટે IDE જરૂરી ન હોવું જોઈએ".) કોમ્પેક્ટનેસ ("અત્યંત અભિવ્યક્ત થવાથી ઉત્પાદકતા વધે છે".) ઝડપ ("જો ખૂબ ધીમી હોય, તો તે પૂરતો સામાન્ય હેતુ ન હોઈ શકે".) "લીલા" બનો, નાના પદચિહ્નો રાખો ("કારણ કે સંસાધનો અમર્યાદિત નથી"). સર્વવ્યાપકતા ("સર્વત્ર ફેલાવો".) પોર્ટેબિલિટી, એકવાર દરેક જગ્યાએ લખો ("પ્રોગ્રામિંગ લેંગ્વેજમાંથી તે ઓછામાં ઓછું અપેક્ષિત છે"). સુગમતા ("શ્રેષ્ઠ નહીં પણ કોઈપણ કાર્ય માટે યોગ્ય!") ડેવલપમેન્ટ રેડનો વિકાસ બે તબક્કામાં કરવાની યોજના છેઃ પ્રારંભિક તબક્કોઃ રિબોલ 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 સોફ્ટવેરમાં બનાવેલ બૂસ્ટ લાઇસન્સ પ્રોગ્રામિંગ ભાષાઓનો ઉપયોગ કરીને બીએસડી લાઇસન્સ સોફ્ટવેરનો ઉપયોગ કરીને મફત કમ્પાઇલર્સ અને દુભાષિયાઓ સોફ્ટવેર