Mafunso asanu okhudza kapangidwe ka chilankhulo cha pulogalamu

Mafunso asanu okhudza kapangidwe ka chilankhulo cha pulogalamu

Filosofi Yotsogolera

1. Kupanga zilankhulo za anthu

Zilankhulo zopanga mapulogalamu ndi momwe anthu amalankhulira ndi makompyuta. Kompyutayo idzasangalala kulankhula chinenero chilichonse chosadziwika bwino. Chifukwa chomwe tili ndi zilankhulo zapamwamba ndichifukwa choti anthu sangathe kuyankhula ndi makina. Cholinga cha zilankhulo zamapulogalamu ndikuletsa ubongo wathu wosauka, wosalimba kuti usamalemedwe ndi zambiri.

Akatswiri a zomangamanga amadziwa kuti zovuta zina zapangidwe zimakhala zosavuta kuposa zina. Ena mwa mavuto omveka bwino komanso osadziwika bwino ndi mapangidwe a milatho. Pankhaniyi, ntchito yanu ndikuphimba mtunda wofunikira ndi zinthu zochepa momwe mungathere. Kumapeto ena a sipekitiramu ndi mapangidwe a mipando. Okonza mipando ayenera kuthera nthawi yawo kuganizira za matako a anthu.

Kupanga mapulogalamu kumakhala ndi kusiyana kofanana. Kupanga ma algorithms kuti muyendetse deta kudzera pa netiweki ndi vuto labwino, losawoneka bwino, monga kupanga milatho. Pomwe kupanga zilankhulo zamapulogalamu kuli ngati kupanga mipando: muyenera kuthana ndi zofooka zaumunthu.

Izi ndizovuta kwa ambiri aife kuzindikira. Kupanga masamu owoneka bwino kumamveka kokopa kwambiri kwa ambiri aife kuposa kungoyang'ana zofooka zaumunthu. Udindo wa kukongola kwa masamu ndikuti kukongola kwina kumapangitsa kuti mapulogalamu amvetsetse mosavuta. Koma si zonse za kukongola.

Ndipo ndikanena kuti zilankhulo ziyenera kupangidwa kuti zigwirizane ndi zofooka za anthu, sindikutanthauza kuti zilankhulo ziyenera kupangidwira opanga mapulogalamu oyipa. Kunena zowona, mukuyenera kupanga mapulogalamu a opanga mapulogalamu apamwamba kwambiri, koma ngakhale opanga mapulogalamu abwino kwambiri ali ndi malire awo. Sindikuganiza kuti aliyense angasangalale ndi kupanga pulogalamu m'chinenero chomwe mitundu yonse imasonyezedwa ndi chilembo "x" chokhala ndi zolemba zonse.

2. Pangani nokha ndi anzanu

Mukayang'ana mbiri ya zilankhulo zamapulogalamu, zilankhulo zabwino kwambiri zidapangidwa kuti zizigwiritsidwa ntchito ndi olemba awo, ndipo zoyipa kwambiri zidapangidwa kuti anthu ena azigwiritsa ntchito.

Zilankhulo zikapangidwira anthu ena, nthawi zonse zimakhala gulu la anthu: anthu sakhala anzeru ngati omwe amapanga chilankhulocho. Umu ndi momwe mumapezera lilime lolankhula kwa inu. Cobol ndiye chitsanzo chodziwika bwino, koma zilankhulo zambiri zimadzazidwa ndi mzimu uwu.

Zilibe kanthu kochita ndi momwe chinenerocho chilili pamwamba. C ndiyotsika kwambiri, koma idapangidwa kuti igwiritsidwe ntchito ndi olemba ake, ndichifukwa chake obera amachikonda.

Mtsutso wopangira zilankhulo za opanga mapulogalamu oyipa ndikuti pali opanga mapulogalamu oyipa kuposa abwino. Mwina izi zili choncho. Koma owerengeka ochepawa opanga mapulogalamu abwino amalemba mapulogalamu ambiri mopanda malire.

Funso langa ndilakuti, mumapanga bwanji chilankhulo chomwe chimakopa omwe akubera bwino kwambiri? Zikuwoneka kwa ine kuti funsoli ndi lofanana ndi funso la momwe mungapangire chinenero chabwino cha pulogalamu?, koma ngakhale sichoncho, ndi funso lochititsa chidwi.

3. Perekani wokonza mapulogalamu mphamvu zambiri momwe angathere

Zilankhulo zambiri (makamaka zomwe zidapangidwira anthu ena) zimakhala ngati ana aakazi: amayesa kukuchenjezani kuti musiyane ndi zinthu zomwe sakuganiza kuti zingakupindulitseni. Ndimayang'ana mosiyana: patsani wokonza mapulogalamu mphamvu zambiri momwe mungathere.

Nditayamba kuphunzira Lisp, chomwe ndimakonda kwambiri chinali chakuti tinkalankhula mofanana. M’zinenero zina zimene ndinaphunzira panthaΕ΅iyo, munali chinenero, ndipo panali programu yanga ya m’chinenero chimenecho, ndipo zinakhalapo zosiyana. Koma ku Lisp, ntchito ndi macros omwe ndidalemba anali omwewo omwe chilankhulocho chidalembedwamo. Ndikhoza kulembanso chinenerocho ngati ndikufuna. Zinali ndi chidwi chofanana ndi pulogalamu yotseguka.

4. Brevity ndi mlongo wa talente

Brevity ndi yocheperapo ndipo ngakhale kunyozedwa. Koma ngati muyang'ana m'mitima ya owononga, mudzawona kuti amakonda kufupikitsa. Ndi kangati komwe mudamva obera akulankhula mwachikondi momwe, mu, kunena, APL, amatha kuchita zodabwitsa ndi mizere ingapo ya ma code? Ndikuganiza kuti anthu anzeru kwenikweni amakonda kulabadira izi.

Ndikukhulupirira kuti pafupifupi chilichonse chomwe chimapangitsa kuti mapulogalamu akhale achidule ndi chinthu chabwino. Payenera kukhala ntchito zambiri za library, chilichonse chomwe chingakhale chowonekera chiyenera kukhala chomwecho; mawu ofotokozera ayenera kukhala achidule; ngakhale mayina a mabungwe ayenera kukhala achidule.

Ndipo osati mapulogalamu okhawo ayenera kukhala achidule. Zolemba pamanja ziyeneranso kukhala zazifupi. Gawo labwino la mabukuwa lili ndi mafotokozedwe, zotsutsa, machenjezo ndi milandu yapadera. Ngati mukufuna kufupikitsa bukhuli, njira yabwino ndiyo kuwongolera chinenero chomwe chimafuna kufotokoza zambiri.

5. Zindikirani kuti kubera ndi chiyani

Anthu ambiri angafune kubera kukhala masamu, kapena china chake chofanana ndi sayansi. Ndikuganiza kuti kubera kuli ngati zomangamanga. Zomangamanga ndi za physics kuti womanga nyumba ayenera kupanga nyumba yomwe siidzagwa, koma cholinga chenicheni cha mmisiri wa zomangamanga ndi kupanga nyumba yabwino, osati kupanga zodziwikiratu m'munda wa statics.

Zomwe owononga amakonda ndikupanga mapulogalamu abwino. Ndipo ndikuganiza kuti, m'malingaliro athu, tiyenera kukumbukira kuti kulemba mapulogalamu abwino ndi chinthu chodabwitsa, ngakhale ntchitoyo ikapanda kumasulira mu ndalama zanzeru zamapepala asayansi. Kuchokera pamalingaliro anzeru, ndikofunikira kupanga chilankhulo chomwe opanga mapulogalamu angakonde monga momwe amapangira choyipa chomwe chili ndi lingaliro lomwe mutha kusindikiza pepala.

Tsegulani Nkhani

1. Kodi mungakonzekere bwanji malaibulale akulu?

Malaibulale akukhala gawo lofunikira la zilankhulo zamapulogalamu. Amakula kwambiri moti akhoza kukhala oopsa. Ngati zimatenga nthawi yayitali kuti mupeze ntchito mulaibulale yomwe imachita zomwe mukufuna kuposa kulemba ntchitoyo nokha, ndiye kuti code yonse sichita chilichonse koma kupangitsa kuti buku lanu likhale lolimba. (Mabuku a Symbolics anali chitsanzo cha izi.) Chifukwa chake tifunika kuthetsa vuto labungwe la library. Moyenera, apangireni kuti wopanga mapulogalamu athe kulingalira kuti ndi ntchito iti ya library yomwe ili yoyenera.

2. Kodi anthu amawopadi mawu oyamba?

Ili ndi vuto lotseguka chifukwa ndakhala ndikuliganizira kwa zaka zingapo koma sindikudziwa yankho lake. Mawu oyamba akuwoneka ngati achilengedwe kwa ine, kupatula ngati amagwiritsidwa ntchito mu masamu. Koma zikhoza kukhala kuti zambiri za kusakondedwa kwa Lisp zimangokhala chifukwa cha mawu osadziwika bwino ... Kaya ndi koyenera kuchita chirichonse pa izo, ngati izo ziri zoona, ndi nkhani ina.

3. Mukufunikira chiyani pa pulogalamu ya seva?

Ndikuganiza kuti mapulogalamu ambiri omwe adzalembedwe mzaka makumi awiri zikubwerazi adzakhala mapulogalamu a pa intaneti, m'lingaliro lakuti mapulogalamu adzakhala pa seva ndikulumikizana nanu kudzera pa msakatuli. Ndipo kuti tilembe mapulogalamu otere timafunikira zinthu zatsopano.

Chimodzi mwazinthuzo ndikuthandizira njira yatsopano yotulutsira mapulogalamu a seva. M'malo motulutsa chimodzi kapena ziwiri zazikulu pachaka, monga mapulogalamu apakompyuta, mapulogalamu a seva adzatulutsidwa motsatizana pang'ono. Mutha kukhala ndi zotulutsa zisanu kapena khumi patsiku. Ndipo aliyense adzakhala ndi mtundu waposachedwa.

Kodi mukudziwa kupanga mapulogalamu kuti azikhala osamalidwa? Mapulogalamu a seva ayenera kupangidwa kuti azitha kusintha. Muyenera kusintha mosavuta, kapena kudziwa kuti kusintha kwakung'ono kumatanthauza chiyani komanso chofunikira.

Chinthu china chomwe chingakhale chothandiza pa mapulogalamu a seva ndi, mwadzidzidzi, kupitiriza kwa kutumiza. Mu pulogalamu yapaintaneti mutha kugwiritsa ntchito zina CPSkuti mupeze zotsatira za zochitika m'dziko lopanda malire la magawo a intaneti. Kukhala ndi mayendedwe opitilira kutha kukhala koyenera ngati mawonekedwewo sakhala okwera mtengo kwambiri.

4. Kodi ndi zinthu zatsopano ziti zomwe zatsala kuti zidziwike?

Sindikutsimikiza kuti chiyembekezocho ndi chololera chotani, koma pandekha ndikufuna kupeza china chatsopano - china chake chomwe chingakhale chatanthauzo ngati ntchito zapamwamba kapena zobwerezabwereza kapena zosasintha. Mwina ili ndi loto losatheka. Nthawi zambiri zinthu zoterezi sizipezeka. Koma sinditaya chiyembekezo.

Zinsinsi zochepa zodziwika

1. Mutha kugwiritsa ntchito chilankhulo chilichonse chomwe mukufuna

Poyamba, kupanga mapulogalamu kumatanthauza kupanga mapulogalamu apakompyuta. Ndipo mu mapulogalamu apakompyuta pali kukondera kwakukulu pakulemba mapulogalamu m'chinenero chofanana ndi makina ogwiritsira ntchito. Kotero zaka khumi zapitazo, kulemba mapulogalamu ambiri kumatanthauza kulemba mapulogalamu mu C. Pambuyo pake, mwambo unasintha: mapulogalamu sayenera kulembedwa m'zinenero zachilendo. Ndipo mwambowu wasintha kwa nthawi yayitali kotero kuti anthu omwe si aukadaulo monga mamanejala ndi ma venture capitalists nawonso adaphunzira.

Mapulogalamu a seva amawononga chitsanzo ichi kwathunthu. Ndi pulogalamu ya seva mutha kugwiritsa ntchito chilankhulo chilichonse chomwe mukufuna. Pafupifupi palibe amene akumvetsa izi (makamaka mamanejala ndi ma venture capitalists). Koma obera ena amamvetsetsa izi, ndichifukwa chake timamva za zilankhulo za indy monga Perl ndi Python. Sitikumva za Perl ndi Python chifukwa anthu amawagwiritsa ntchito polemba mapulogalamu a Windows.

Izi zikutanthawuza chiyani kwa ife, anthu omwe ali ndi chidwi ndi mapangidwe a chinenero cha pulogalamu, kuti pali omvera omwe angakhale nawo pa ntchito yathu.

2. Kuthamanga kumachokera ku mbiri

Okonza zinenero, kapena ogwiritsira ntchito zilankhulo, amakonda kulemba zolemba zomwe zimapanga khodi yachangu. Koma ndikuganiza kuti sizomwe zimapangitsa kuti zilankhulo zikhale zofulumira kwa ogwiritsa ntchito. Knuth ananena kalekale kuti liΕ΅iro limadalira zinthu zochepa chabe. Ndipo aliyense amene anayesa kufulumizitsa pulogalamu amadziwa kuti simungadziwe komwe kuli vuto. Profiler ndiye yankho.

Okonza zinenero akuthetsa vuto lolakwika. Ogwiritsa safuna ma benchmarks kuti azithamanga mwachangu. Amafunika chinenero chimene chingasonyeze mbali za pulogalamu yawo zimene ziyenera kulembedwanso. Panthawiyi, kuthamanga kumafunika pochita. Kotero mwina zingakhale bwino ngati chinenero implementers anakhala theka la nthawi amathera optimizing ndi compiler ndi kumathera kulemba wabwino profiler.

3. Mufunika pulogalamu yomwe imapangitsa chilankhulo chanu kusinthika

Ichi sichingakhale chowonadi chenicheni, koma zikuwoneka kuti zilankhulo zabwino kwambiri zidasintha komanso momwe zidagwiritsidwira ntchito. C inalembedwa ndi anthu omwe amafunikira mapulogalamu a machitidwe. Lisp adapangidwa mwanjira ina kuti azisiyanitsa mophiphiritsa, ndipo McCarthy anali wofunitsitsa kuti ayambe mpaka adayamba kulemba mapulogalamu osiyanitsa mu pepala loyamba la Lisp mu 1960.

Izi ndi zabwino makamaka ngati pulogalamu yanu yathetsa mavuto atsopano. Izi zimakankhira chilankhulo chanu kukhala ndi zatsopano zomwe opanga mapulogalamu amafuna. Inemwini, ndili ndi chidwi cholemba chilankhulo chomwe chingakhale chabwino pamapulogalamu a seva.

[Pokambitsirana, a Guy Steele ananenanso mfundoyi, ndikuwonjeza kuti kugwiritsa ntchito sikuyenera kukhala kulemba cholembera chilankhulo chanu, pokhapokha chilankhulo chanu chidapangidwa kuti chilembe ophatikiza.]

4. Chilankhulocho chiyenera kukhala choyenera kulemba mapulogalamu a nthawi imodzi.

Mumadziwa zomwe pulogalamu yowombera imodzi imatanthauza: ndipamene muyenera kuthana ndi vuto lochepa. Ndikukhulupirira kuti mukayang'ana pozungulira, mupeza mapulogalamu ambiri omwe adayamba ngati amodzi. Sindingadabwe ngati mapulogalamu ambiri adayamba ngati amodzi. Choncho, ngati mukufuna kupanga chinenero chomwe chidzakhala choyenera kulemba mapulogalamu ambiri, ndiye kuti chiyenera kukhala choyenera kulemba mapulogalamu amodzi, chifukwa ichi ndi gawo loyamba la mapulogalamu ambiri.

5. Syntax imagwirizana ndi semantics

Pachikhalidwe amakhulupirira kuti syntax ndi semantics ndi zinthu zosiyana kwambiri. Izi zingamveke zododometsa, koma si choncho. Ndikuganiza kuti zomwe mukufuna kukwaniritsa mu pulogalamu yanu zikugwirizana ndi momwe mumafotokozera.

Posachedwa ndidalankhula ndi a Robert Morris, ndipo adawona kuti kuchulukitsa kwa opareshoni ndikothandiza kwambiri pakupambana kwa zilankhulo ndi infix syntax. M'zilankhulo zokhala ndi mawu oyambira, ntchito iliyonse yomwe mumatanthauzira imakhala yoyendetsa. Ngati mukufuna kuwonjezera mtundu watsopano wa nambala yomwe mudapanga, mutha kungotanthauzira ntchito yatsopano kuti muwonjezere. Ngati muchita izi m'chinenero chokhala ndi infix syntax, mudzawona kuti pali kusiyana kwakukulu pakati pa kugwiritsa ntchito opareshoni yodzaza ndi kuyitana ntchito.

Malingaliro omwe amabweranso pakapita nthawi

1. Zinenero zatsopano zamapulogalamu

Kuyang'ana mmbuyo kuzaka za m'ma 1970, zinali zafashoni kupanga zilankhulo zatsopano zamapulogalamu. Izi sizili choncho tsopano. Koma ndikukhulupirira kuti mapulogalamu a seva adzabwezeretsanso mafashoni opanga zilankhulo zatsopano. Ndi mapulogalamu a seva mungagwiritse ntchito chinenero chilichonse chomwe mukufuna, kotero ngati wina apanga chinenero chomwe chikuwoneka bwino kuposa ena onse, padzakhala anthu omwe angasankhe kuzigwiritsa ntchito.

2. Kugawana nthawi

Richard Kelsey adabwera ndi lingaliro ili lomwe nthawi yake yabweranso ndipo ndikuichirikiza kwathunthu. Malingaliro anga (ndi a Microsoft nawonso) ndikuti makompyuta ambiri achoka pakompyuta kupita ku maseva akutali. Mwanjira ina, kugawana nthawi kwabwerera. Ndikuganiza kuti izi zidzafunika thandizo pamlingo wachilankhulo. Mwachitsanzo, Richard ndi Jonathan Reeves achita ntchito yambiri kuti akhazikitse ndondomeko ya ndondomeko mu Scheme 48.

3. Kuchita bwino

Posachedwapa zinkawoneka kuti makompyuta anali othamanga kwambiri. Tikumva zambiri za bytecode, zomwe kwa ine zikutanthauza kuti tili ndi mphamvu zosungika. Koma ndikuganiza kuti ndi mapulogalamu a seva, tilibe. Wina adzayenera kulipira ma seva omwe amayendetsa pulogalamuyo, ndipo chiwerengero cha ogwiritsa ntchito omwe seva ingathe kuthandizira pa makina onse adzakhala gawo la ndalama zawo.

Ndikuganiza kuti kuchita bwino kumakhala kofunikira, makamaka pakulephera kwa kompyuta. Izi zidzakhala zofunikira makamaka pa ntchito za I / O, chifukwa mapulogalamu a seva amachita zambiri zoterezi.

Pamapeto pake, zitha kuwoneka kuti bytecode si yankho. Dzuwa ndi Microsoft zikuwoneka kuti zikupita patsogolo m'munda wa bytecode pakadali pano. Koma amachita izi chifukwa bytecode ndi malo abwino oti alowemo, osati chifukwa bytecode palokha ndi lingaliro labwino. Zitha kuchitika kuti nkhondo yonseyi ikhala yosazindikirika. Zingakhale zoseketsa.

Misampha ndi misampha

1. Makasitomala

Uku ndikungoyerekeza, koma ndikuti mapulogalamu okhawo omwe angapindule ndi omwe ali mbali ya seva. Kupanga mapulogalamu omwe amagwira ntchito poganiza kuti aliyense adzakhala ndi kasitomala kuli ngati kupanga gulu potengera kuti aliyense adzakhala woona mtima. Zingakhale zosavuta, koma muyenera kuganiza kuti sizidzachitika.

Ndikuganiza kuti padzakhala kuwonjezeka kofulumira kwa zipangizo zogwiritsira ntchito intaneti, ndipo tikhoza kuganiza kuti zidzathandizira html ndi mafomu ofunikira. Kodi muli ndi msakatuli pa foni yanu? Kodi PalmPilot yanu idzakhala ndi foni? Kodi mabulosi akutchire anu adzakhala ndi chophimba chachikulu? Kodi mudzatha kupeza intaneti kuchokera kwa wosewera mpira wanu? Kuchokera pa wotchi yanu? Sindikudziwa. Ndipo sindiyenera kudziwa ngati ndikubetcha kuti zonse zikhala pa seva. Ndizodalirika kwambiri kukhala ndi ubongo wonse pa seva. .

2. Kukonza mapulogalamu okhudzana ndi cholinga

Ndikuzindikira kuti awa ndi mawu otsutsana, koma sindikuganiza kuti OOP ndiyofunikira. Ndikuganiza kuti iyi ndi paradigm yoyenera pamapulogalamu apadera omwe amafunikira ma data apadera, monga makina owonera mawindo, zofananira, machitidwe a CAD. Koma sindikumvetsa chifukwa chake iyenera kukhala yoyenera pamapulogalamu onse.

Ndikuganiza kuti anthu m'makampani akuluakulu amakonda OOP, mwa zina, chifukwa imapanga zinthu zambiri zomwe zimawoneka ngati ntchito. Zomwe zitha kuimiridwa mwachilengedwe monga, titi, mndandanda wazinthu zonse, zitha kuimiridwa ngati kalasi yokhala ndi mitundu yonse yamasewera, phokoso komanso phokoso.

Chinthu china chochititsa chidwi cha OOP ndikuti njira zimakupatsani zina mwazotsatira zamagulu oyamba. Koma iyi si nkhani kwa olemba mapulogalamu a Lisp. Mukakhala ndi magwiridwe antchito amtundu woyamba, mutha kuzigwiritsa ntchito mwanjira iliyonse yomwe ikugwirizana ndi ntchito yomwe muli nayo, m'malo mokankhira chilichonse mumagulu a makalasi ndi njira.

Ndikuganiza kuti izi zikutanthauza chiyani pakupanga chilankhulo ndikuti simuyenera kuyika OOP mozama kwambiri. Mwina yankho ndikupereka zinthu zambiri, zoyambira, ndikulola anthu kupanga makina aliwonse ngati malaibulale.

3. Kupangidwa ndi komiti

Ngati chilankhulo chanu chapangidwa ndi komiti, ndiye kuti mwatsekeredwa, osati pazifukwa zomwe aliyense amadziwa. Aliyense amadziwa kuti makomiti amakonda kupanga zilankhulo zopanda pake, zosagwirizana. Koma ine ndikuganiza choopsa chachikulu ndi chakuti iwo saika moyo pachiswe. Munthu m'modzi akakhala ndi udindo, amaika moyo pachiswe zomwe komitiyo singavomereze kuchitapo kanthu.

Kodi muyenera kuchitapo kanthu kuti mupange chilankhulo chabwino? Anthu ambiri atha kukayikira kuti kapangidwe ka chilankhulo ndi komwe muyenera kukhala pafupi ndi nzeru zachikhalidwe. Ine kubetcherana kuti sizili choncho. Mu china chilichonse chomwe anthu amachita, mphotho yake imayenderana ndi ngozi. Ndiye n'chifukwa chiyani mapangidwe a chinenero ayenera kukhala osiyana?

Source: www.habr.com

Kuwonjezera ndemanga