仰望是什么意思| 雾是什么| 牛仔布料是什么面料| ca125是什么| 打蛋白针有什么作用| 排骨炖什么比较好吃| 土猪肉和普通猪肉有什么分别| 吃完麻辣烫吃什么补救| 复姓什么意思| 胸上长痘痘是什么原因| 人参和什么泡酒最好| 什么的冬天| 梦见下牙掉了是什么征兆| 崩大碗配什么煲汤最好| 祛疤用什么| 日本豆腐是什么做的| 抬举是什么意思| 为什么总是打嗝| 蛇的天敌是什么| 三合局是什么意思| pn是什么| 胃暖气是什么症状| 可望不可求是什么意思| 潜血十一是什么意思| 甲钴胺的副作用是什么| 肾出血是什么原因引起的| 谢娜什么星座| 易经是什么| 壁虎喜欢吃什么| 梦见大水是什么预兆| 什么水| 头好出汗是什么原因| 过期的牛奶有什么用途| 什么品种的鸡肉最好吃| 什么时候普及高中义务教育| 阴历七月是什么星座| 惊为天人是什么意思| 无可奈何是什么生肖| 4月3日是什么星座| 两千年前是什么朝代| 缓刑什么意思| 风加具念什么| 酱油什么时候发明的| 玻璃属于什么垃圾| 摩丝是什么| 獐子是什么动物| 不是什么意思| 什么是翻新机| 16岁属什么| 做眉毛有什么危害| 咲是什么意思| 氨基酸有什么作用| 陈赫什么星座| 促进钙吸收吃什么| 风热感冒吃什么药最好| 老婆饼是什么馅| 纳氏囊肿是什么意思| 你本来就很美是什么广告| 定坤丹适合什么人吃| 樊胜美是什么电视剧| 小混混是什么意思| 绿色的大便是什么原因| 小孩便秘是什么原因引起的| 胃疼是什么原因| 吃什么精力旺盛有精神| 什么是逆向思维| 黎明是什么时间| 手脚麻是什么原因| 碘缺乏会导致什么疾病| 肾外肾盂是什么意思| 为什么会头疼| 为什么近亲不能结婚| 荡气回肠什么意思| 猴跟什么生肖配对最好| 烧烤用什么油| 商是什么| 夏天摆摊适合卖什么| 红肉是什么肉| 开髓引流是什么| 送女生什么礼物好| 吃什么东西能变白| 什么补血快| 缺爱是什么意思| 什么叫痉挛| 脖子变粗了是什么原因| 逻辑性是什么意思| 指甲发白是什么原因| 喝豆浆拉肚子什么原因| 平板电脑是什么| 一开车就犯困是什么原因| 梦见自己给别人钱是什么意思| 九月份是什么季节| 奥肯能胶囊是什么药| 乳房边缘一按就疼是什么原因| 肝风内动是什么原因造成的| 超管是什么| 怎么知道自己是什么血型| 来月经有什么症状| 款款是什么意思| 什么叫做原发性高血压| 女性外痔擦什么药膏好| 拌嘴是什么意思| 高血压能吃什么| 长沙有什么大学| 新生儿嘴唇发紫是什么原因| 空调送风模式有什么用| 肾阳虚是什么原因引起的| 黄骨鱼是什么鱼| 异化是什么意思| 尿液有白色絮状物是什么原因| 口苦是什么原因引起的| 睡觉起来嘴巴苦是什么原因| 椭圆脸适合什么发型男| 喝咖啡心慌是什么原因| 世界上有什么| 小赤佬是什么意思| 男士长脸适合什么发型| 豆芽菜是什么意思| 咖色是什么颜色| 腿毛多是什么原因| 属猴的什么命| 为什么会得人工荨麻疹| 江苏有什么山| 贝加台念什么| 带状疱疹是什么引起的| 孕妇梦见鬼是什么预兆| 臭鳜鱼是什么鱼| 美如天仙是什么生肖| 血小板低是什么问题| 余光是什么意思| 小孩过敏吃什么药最好| 玉米是什么时候传入中国的| 肌酸激酶什么意思| 开什么店最赚钱| 贫血会出现什么症状| 1664是什么酒| 胎盘后壁是什么意思| 女人肾阴虚吃什么药| 公安局局长什么级别| 尿里加什么能冒充怀孕| 嗓子肿痛吃什么药| 什么叫假性发烧| 托马斯是什么意思| 鱼胶是鱼的什么部位| 属鸡的幸运色是什么颜色| 83年五行属什么| 结婚纪念日送什么礼物| 肠子疼是什么原因| 什么是植物人| 三和大神什么意思| 湿疹什么样| 吃毛蛋有什么好处| 伤口溃烂不愈合用什么药| kimi什么意思| 下身瘙痒是什么原因| 风情万种的意思是什么| 为什么蚊子不咬我| 吃大虾不能吃什么| 犄角旮旯是什么意思| 侍郎是什么官| 颈动脉斑块看什么科| 缠绵是什么意思| 双侧附睾头囊肿是什么意思| 什么蔬菜是温性的| 什么叫假性发烧| 土字旁的字与什么有关| 慢性咽炎是什么症状| 血常规一般查什么病| 美人鱼2什么时候上映| 中药液是什么药| 唇炎是什么原因引起的| 梦到很多蛇是什么意思| 风油精有什么功效| 全程c反应蛋白高说明什么| 脚底板痒是什么原因| 狗狗耳螨用什么药| 浑身解数是什么意思| 无的放矢什么意思| 什么朝天| vg是什么意思| 虫草适合什么人吃| 美国fda认证是什么| 35岁属什么生肖| 送礼送什么比较好| 盆腔积液用什么药| 小孩头疼吃什么药| 减肥吃什么好而且瘦的快| 六味地黄丸是治什么的| 尿酸高什么原因引起的| 阴差阳错是什么意思| 荆州有什么大学| 脑疝是什么原因引起的| 一个口一个巴念什么字| 吴亦凡为什么退出exo| 孕妇用什么驱蚊最好| ms是什么单位| 润六月是什么意思| 牙痛什么原因引起的| 最高人民法院院长什么级别| 怀孕第一个月有什么反应| t波改变什么意思| bosch是什么牌子| 七六年属什么| 催丹香是什么意思| 免疫组化检查是什么意思| 女人梦见蛇缠身是什么预兆| 玫瑰金是什么颜色| 三维是什么意思| 茶话会是什么意思| 313什么意思| 孕妇吃维生素c有什么好处| 女人吃枸杞有什么好处| 什么是命中注定| 陋习什么意思| 舍本逐末是什么意思| 胎盘埋在什么地方最好| 增致牛仔属于什么档次| 约炮是什么意思| 6.28什么星座| 蒲公英叶和根的功效有什么不同| 碳酸钙d3颗粒什么时候吃最好| 前庭功能障碍是什么病| 雄鱼是什么鱼| iwc手表是什么档次| 帕金森吃什么药效果好| 学中医需要什么学历| 柠檬水有什么功效| 吃什么长头发快| 飞机上什么东西不能带| 还有什么寓言故事| 海阔什么| 囟门凹陷是什么原因| 13颗珠子的手串什么意思| alaska是什么意思| 糖化血红蛋白是什么意思| 儿童鼻炎挂什么科| 头晕什么原因引起的| 牙齿松动是什么原因引起的| 轩字属于五行属什么| 潜伏是什么意思| 眩晕症是什么原因| 什么肉不含嘌呤| 鄂尔多斯是什么意思| 肾功能检查挂什么科| 血尿是什么原因引起的| 支原体感染咳嗽吃什么药| a型血rh阳性是什么意思| 彩排是什么意思| 居高临下是什么意思| 肾虚是什么症状| 扁桃体发炎是什么症状| 家庭养什么狗最干净| 睡觉梦到蛇是什么意思| 34岁属什么的生肖| 头孢是什么药| 荀彧字什么| 贫血喝什么口服液| ira是什么品牌| 脑梗病人吃什么营养恢复最好| 酱牛肉放什么调料| EV71疫苗是什么| gxg是什么牌子| 一什么小船| 西葫芦炒什么好吃| 百度Мазм?н?а ?ту

网式过滤器规格山西朔州市网式过滤器供应厂家

Уикипедия — ашы? энциклопедиясынан алын?ан м?л?мет
百度     她23日说:“我们始终在通过情报渠道共享我们能够与我们的同事共享的(信息)。

К?мекш? (ба?ыны??ы) ба?дарлама (Вспомогательная программа (подпрограмма); subroutine) — бас?а ба?дарламаны? ??рамына к?рет?н, оны? б?р блогы рет?нде ?арастырылатын, ба?дарламалау т?л?н?? ережелер??е с?йкес жазыл?ан ?осал?ы ба?дарлама.[1]

К?ш? (?шк?) ба?дарлама (функция)

[??деу?| ?айнарын ??деу]

Компьютерл?к ба?дарламаларда(computer programming) ?шк? ба?дарлама - б?л белг?л? б?р м?ндетт? орындайтын, б?рт?тас ба?дарламалы? н?с?аулы?тарды? ж?йел?л?г?. Б?л блокты ?андай да б?р на?ты м?ндет орындалатын ба?дарламаларда ?олдану?а болады.

К?ш? ба?дарламалар ба?дарламаларды? ?ш?нде немесе программалар к?тапханасы б?лек к?птеген ба?дарламалармен ай?ындалуы м?мк?н. ?р т?рл? ба?дарламалау т?лдер?нде ба?дарлама процедура(procedure), функция(function), ?д?с (method) немесе к?ш? ба?дарлама (subprogram) деп аталуы м?мк?н. Кейде "ша?ырылатын б?рл?к"(callable unit) жалпы термин? ?олданылады.

К?ш? ба?дарлама атауы ек? ма?ына ?сынады:?шк? ба?дарламаны? ?р? ба?дарламада б?р ?адам рет?нде пайдаланылатын компьютерл?к ба?дарлама сия?ты немесе бас?а к?ш? ба?дарламада шамамен б?рдей ?ызмет ат?арады. К?ш? ба?дарлама жи? осындай т?рт?ппен кодталады:б?рнеше рет ж?не ба?дарламаны б?р орындау кез?нде б?рнеше орындардан, соны? ?ш?нде бас?а да к?ш? ба?дарламалардан, ба?дарлама м?ндетт? ж?зеге асырыл?аннан кей?н келес? н?с?ау?а фунция ша?ырыл?аннан со?(function call) кер? ?арай оралуы (return).

К?ш? ба?дарлама идеясы ал?ашында Джон Маучли ENIAC ?ст?нде ж?мыс ?стеу кез?нде ойлап тапты ж?не "EDVAC типт? машиналар?а арнал?ан есептерд? дайындау" та?ырыбы бойынша 1947 жылды? ?а?тарында Гарвард симпозиумында осы туралы жаз?ан.Морис Уилкс, Дэвид Уиллер ж?не Стэнли Джилл ?детте т?жырымдаманы? ресми ?нертабыскерлер? болып есептелед?. Aшы? к?ш? немесе немесе микроба?дарламалау ба?дарлама?а ?ара?анда олар т?жырымды жабы? к?ш? ба?дарлама атауын берген.

Ба?дарлама- ба?дарламалауды? ?уатты ??ралы, ж?не к?птеген ба?дарламалау т?л? синтаксисi оларды жазу мен пайдалануды ?амтиды. К?ш? ба?дарламаларды а?ыл?а ?онымды пайдалану (мысалы, ??рылымдал?ан ба?дарламалау(structured programming) т?с?л? ар?ылы) ?лкен ба?дарламаны ?з?рлеуге ж?не ?ызмет к?рсетуге ж?мсалатын шы?ындарды жи? т?мендетед?, сонымен ?атар оны? сапасы мен сен?мд?л?г?н арттырады. К?тапханаларда жи? жинал?ан к?ш? ба?дарламалар ба?дарламалы? ?амтамасыз етуд? б?рлес?п пайдалану ж?не сату ?ш?н ма?ызды тет?к болып табылады. Объект?ге-ба?ыттал?ан ба?дарламалау(object-oriented programming) п?н? обьект (ба?дарламалау) мен ?д?стерге нег?зделген (б?л объект?лер(objects) немесе объект?лер класстарына(object classes) бек?т?лген к?ш? ба?дарламалар болып табылады).

А?ын коды(threaded code) атауын ал?ан компилятор(compiling) ?д?с?нде орындалатын ба?дарлама нег?з?нен ба?дарлама ша?ыруларыны? т?збег? болып табылады.

Нег?зг? т?жырымдамалар

[??деу?| ?айнарын ??деу]

Ба?дарлама мазм?ны оны? денес? болып табылады, ол ба?дарлама ша?ыр?анда немесе ша?ыр?анда орындалатын ба?дарламалы? кодты? фрагмент? болып табылады. Ба?дарлама ша?ырушы ба?дарламалардан (оны? параметрлер?н(parameters) немесе формальды параметрлер?н(formal parameters) ауыстыру ?ш?н) б?р немесе б?рнеше аргументтер(arguments) м?н?н алуды к?туге болатындай жазылуы м?мк?н. Ша?ырушы ба?дарлама аргументтер деп аталатын осы параметрлерге на?ты м?ндерд? беред?. Т?рл? ба?дарламалау т?лдер? аргументтерд? ж?беру ?ш?н т?рл? кел?с?мдерд? пайдалана алады:

Кел?с?м Сипаттамасы Жалпы пайдаланымы
М?н? бойынша ша?ыру Аргумент есептелед? ж?не м?н к?ш? ба?дарлама?а бер?лед? Algol 60 кей?н к?птеген Алгол тектес т?лдер ?депк? бойынша default, мысалы Pascal(Паскаль), Delphi, Similar, CPL, PL/M, Modula, Oberon, Ada ж?не т.б. C, C++, Java (нысандар мен массивтерге с?лтеме м?н? бойынша бер?лед?)
С?лтеме бойынша ша?ыру Д?лелге с?лтеме, ?детте, оны? мекенжайы бер?лед? Algol 68, Pascal, Delphi, Similar, CPL, PL/M, Modula, Oberon, Ada ж?не т.б. сия?ты к?птеген Алгол?а ??сас т?лдер ALGOL 60 кей?н та?далады. C++, Fortran, PL / I
Н?тиже бойынша ша?ыру Параметр м?н? функциядан ?айтару кез?нде аргументке кер? к?ш?р?лген Ada OUT параметрлер?
Н?тиже-м?н? бойынша ша?ыру Параметр м?н? к?ш? ба?дарлама к?ргенде ж?не ?айта ?айтарыл?анда к?ш?р?лед? Algol
Атауы бойынша ша?ыру Макро рет?нде – параметрлерд? ба?аланба?ан аргумент ?рнектермен ауыстыру Algol, Scala
Т?ра?ты м?н? бойынша ша?ыру М?н? бойынша ша?ыру сия?ты б?ра? параметр константа рет?нде ?арастырылады PL/I БА?АЛАНБАЙТЫН параметрлер?, Ada IN параметрлер?

К?ш? ба?дарлама ша?ырушы объект?ге есептелген м?нд? (оны? ?айтарылатын м?н?н(return value) ) ?айтаруы немесе ?рт?рл? н?тиже берет?н м?ндерд? немесе шы?ыс параметрлер?н беру? м?мк?н. Шын м?н?нде, к?ш? ба?дарламаларды жалпы пайдалану функция (математика) ж?зеге асыру болып табылады, онда к?ш? ба?дарламаны? ма?саты тек б?р немесе б?рнеше н?тижелерд? есептеу болып табылады, оларды? м?ндер? толы? бер?лген к?ш? ба?дарлама?а бер?лет?н аргументтермен ай?ындалады. (Мысалдар санны? логарифм?н немесе матрица (математика) аны?тауыш (математика)(determinant of a matrix) есептеуд? ?амтуы м?мк?н.)

Ба?дарлама ша?ыруы, сондай-а?, компьютерл?к жадында?ы м?л?меттер ??рылымын(data structures) ?згерту, сырт?ы (шал?ай) жабды? (peripheral device) о?у немесе жазу, файлды жасау, ба?дарламаны немесе машинаны то?тату немесе белг?л? б?р уа?ытта ба?дарламаны орындауды к?д?рту сия?ты жанама ?серлер? болуы м?мк?н. Жанама ?серлер? бар к?ш? ба?дарлама ол сол д?лелдермен байланысты болса да, ша?ырыл?ан сайын ?р т?рл? н?тижелерд? ?айтаруы м?мк?н. Мысал рет?нде к?птеген т?лдерде ?ол жет?мд? кездейсо? сандарды? функциясы(random number function) бола алады, ол ?р т?рл? жал?ан кездейсо? сандарды ша??ан сайын ?айтарады. Жанама ?серлер? бар к?ш? ба?дарламаларды ке??нен пайдалану императивт? ба?дарламалау(imperative programming) т?лдер?н?? т?н ерекшел?г? болып табылады.

К?ш? ба?дарлама ?з м?ндеттер?н орындау ?ш?н б?р немесе б?рнеше жерде ?з?н рекурсивт? тудыратындай ет?п кодтау?а болады. Б?л ?д?с математикалы? индукциямен ж?не рекурсивт? алгоритмдермен аны?тал?ан функцияларды(divide and conquer algorithm) т?келей ж?зеге асыру?а м?мк?нд?к беред?. Б?р логикалы? функцияны есептеуге арнал?ан к?ш? ба?дарлама (я?ни "И?/Жо?" с?ра?ына жауап беру ?ш?н) кейде предикат деп аталады. Логикалы? программалау т?лдер?нде жи? [шашыра??ы] барлы? к?ш? ба?дарламалар предикаттар деп аталады, ?йткен? олар б?р?нш? кезекте [шашыра??ы] табыс?а немесе с?тс?зд?кке байланысты.

Т?лд?к ?олдау

[??деу?| ?айнарын ??деу]

Жо?ары де?гейл? ба?дарламалау т?лдер? ?детте белг?л? б?р ??рылымдарды ?амтиды:

  • К?ш? ба?дарламаны ??райтын ба?дарламаны? б?л?г?н (денес?н) б?лy
  • К?ш? идентификатор (аты)
  • Оны? параметрлер? мен ?айтарылатын м?ндер деректер?н?? атын ж?не м?л?меттер тип?н к?рсету
  • Уа?ытша айнымалы ?ш?н жеке атау айма?ын беру
  • ?шк? ?ол жет?мд? ?шк? ба?дарламадан тыс айнымалыларды аны?тау
  • К?ш? ба?дарламаны ша?ыру
  • Параметрлерге м?н беру
  • Нег?зг? ба?дарлама к?ш? ба?дарлама адрес?н ?амтиды
  • К?ш? ба?дарлама нег?зг? ба?дарламада?ы функцияларды? келес? ша?ыру н?с?аулы?ыны? адрес?н ?амтиды
  • Денеден ?айтарылатын м?ндерд? к?рсету
  • Ша?ырушы ба?дарлама?а ?айтару
  • Ша?ыру ?айтарылатын м?ндерд? жою
  • Ша?ыру кез?нде туында?ан кез келген ерекше жа?дайларды ??деу
  • К?ш? ба?дарламаларды модульге, программалар к?тапханасы, обьект (ба?дарламалау) немесе класс?а буып-т?йю

Паскаль (ба?дарламалау т?л?), Фортран, Ада (ADA) сия?ты кейб?р ба?дарламалау т?лдер? ж?не к?птеген BASIC(Бейсик) диалект?лер?, ша?ырушы ба?дарламаны? аны? ?айтарылатын м?н?н берет?н функцияларды немесе функционалды? к?ш? ба?дарламаларды ж?не м?ны жасамайтын к?ш? ба?дарламаларды немесе р?с?мдерд? ажыратады. Б?л т?лдерде функцияларды? ша?ырулары ?детте ?рнектерде орнатыл?ан (мысалы, sqrt функциясы y = z + sqrt(x)). рет?нде туындауы м?мк?н). Процедуралар ша?ырулары немесе операторлар рет?нде синтаксист?к т?рде (мысалы, print процедурасы if x > 0 then print(x) немесе CALL немесе GOSUB (мысалы, call print(x)).) сия?ты оператормен ай?ын ша?ырылуы м?мк?н. C ба?дарламалау т?л? ж?не Lisp сия?ты бас?а т?лдер функциялар мен к?ш? ба?дарламалар арасында айырмашылы?тар жасамайды. Haskell(М?т?нд? автоматты ??деу) сия?ты ?ата? функционалды? ба?дарламалау т?лдер?нде, ба?дарлама еш?андай жанама ?серлер? болуы м?мк?н емес, б?л ба?дарламаны? ?р т?рл? ?шк? к?йлер? ?згерт?лмейд? дегенд? б?лд?ред?. Функциялар ?р?ашан б?рдей д?лелдермен ?айта ?о?ырау шалу кез?нде б?рдей н?тижен? ?айтарады. М?ндай т?лдер, ?детте, тек функцияларды ?ана ?олдайды, себеб? м?н? ?айтарылмайтын к?ш? ба?дарламалар, егер олар жанама ?серд? тудыруы м?мк?н болмаса, еш?андай пайдасы жо?. C, C++ ж?не C#(C Sharp) сия?ты ба?дарламалау т?лдер?нде, сондай-а?, ба?дарламалар жай ?ана функциялармен аталады, ?рт?рл? ??ымдар болып табылатын математикалы? функциялармен(Функция (математика)) немесе функционалды? ба?дарламалармен шатастырмауы ?ажет. K?ш? ба?дарламалар оларды ша?ыратын ба?дарламалардан б?лек компиляциялануы м?мк?н ?ш?н т?л компиляторы ?детте процедуралар ша?ыруларын аударады ж?не ша?ыру туралы на?ты белг?ленген кел?с?мге с?йкес машина н?с?ауларына ?айтарады. Call ж?не return операторларына с?йкес келет?н н?с?ауларды? ретт?л?г? пролог ж?не эпилог процедуралар деп аталады.

Арты?шылы?тары

[??деу?| ?айнарын ??деу]

Ба?дарламаны к?ш? ба?дарламалар?а б?лу арты?шылы?тары:

  • ?арапайым кезе?дерге ба?дарламалауды? к?рдел? есеб?н?? декомпозициясы(decomposing): б?л м?л?меттер ??рылымымен(data structure) ?атар ??рылымдал?ан ба?дарламалауды?(structured programming) ек? нег?зг? ??ралдарыны? б?р?
  • Ба?дарламада?ы код дубликаттарыны?(duplicate code) санын ?ыс?арту
  • Б?рнеше ба?дарламаларда кодты ?айта пайдалануды ?осу
  • ?р т?рл? ба?дарламашылар немесе жобаны? ?р т?рл? кезе?дер? арасында ?лкен ба?дарламалау есеб?н б?лу
  • К?ш? ба?дарламаны пайдаланушылардан ж?зеге асыру б?лшектер?н жасыру
  • Код блогыны? функцияны? сипаттамалы? атауы код блогын сипаттау ?ш?н ?ызмет етет?н кодты ша?ырумен ауыстыру ар?ылы кодты? о?ылуын жа?сарту. Б?л функция ?айта пайдалану?а арналма?ан болса да, ?ыс?а ж?не о?ылатын кодты жасайды.
  • ?ада?алауды?(traceability) жа?саруы (я?ни к?птеген т?лдер ?ске ?осыл?ан к?ш? ба?дарламаларды? аттарын ж?не файлдар мен жолдар н?м?рлер? сия?ты к?п а?паратты ?амтитын ша?ыруларды тарту т?с?лдер?н ?сынады); егер кодты к?ш? ба?дарламалар?а б?лмесе, баптау(debugging) ?атты б?зылатын болады

Кемш?л?ктер?

[??деу?| ?айнарын ??деу]
  • ?шк? кодты пайдаланумен салыстыр?анда, к?ш? ба?дарлама ша?ыруы кейб?р есептеу шы?ындарын(computational overhead) ша?ыру механизм?не салады.
  • К?ш? ба?дарлама ?детте housekeeping стандартты кодын талап етед?-функция?а к?рген кезде де, одан шы??ан кезде де (функцияны? прологы мен эпилог – ?детте жалпы ма?сатта?ы процессор регистр?(general purpose and registers) ж?не кер? адрест?(return address) са?тау).

Ба?дарлама идеясы есептеу машиналары б?раз уа?ыт бойы бол?ан со? ?з?рленд?. Ауысуды? арифметикалы? ж?не шартты н?с?аулары алдын ала жоспарлан?ан ж?не салыстырмалы т?рде аз ?згерд?; б?ра? процедураларды ша?ыру ?ш?н пайдаланылатын арнайы н?с?аулар осы жылдар ?ш?нде ?атты ?згерд?. Manchester Baby ж?не RCA 1802 сия?ты е? ерте компьютерлер мен микропроцессорлар к?ш? ба?дарламаларды ша?ыруды? б?ры??ай н?с?аулы?тары бол?ан жо?. Ба?дарлама ?ске асырылуы м?мк?н, б?ра? олар программистерден ша?ырулар т?збег?н-н?с?аулы?тар сериясын-?рб?р ша?ыру торабында(call site) пайдалануды талап етт?.

К?ш? ба?дарлама Z4 Конрада Зузе 1945 жылы ?ске асырылды. 1946 жылы Алан Тьюринг "жерлеу"(bury) ж?не " ?айта ?азып алу"(unbury) терминдер?н ша?ыру ж?не к?ш? ба?дарламалардан ?айтару ??ралы рет?нде пайдаланды. Джон Маучли 1947 жылды? ?а?тар айында Гарвард университет? ж?не ??рама Штаттарды? ?скери-те??з флотыны? о?-д?р? бюросымен б?рлес?п ?йымдастыр?ан ?р? масштабты санды? есептеу машиналарыны? симпозиумында жалпы ескертулерд? ?сынды. М?нда ол д?йект? ж?не параллель операцияны тал?ылайды. ...машинаны? ??рылымы б?рде-б?р битке к?рделенбеу? ти?с. Б?л процедура?а ?ажетт? барлы? логикалы? сипаттамалар бар бол?анды?тан, машинада белг?л? орындарда жадта к?ш? ба?дарламаларды орналастыру ж?не кодтаушы н?с?ауды о?ай ?олданыла алатындай ?ш?н ?з?рлеуге болатындай ?стед?.

Бас?а с?збен айт?анда, А к?ш? ба?дарламасын б?лу рет?нде, ал В к?ш? ба?дарламасы-к?рдел? к?бейту рет?нде, ал С к?ш? ба?дарламасы-на?ты м?ндет ?ш?н ?ажетт? к?ш? ба?дарламаларды? т?з?м? бойынша сандарды? ретт?л?г?н?? стандартты ?атес?н ба?алау рет?нде белг?леуге болады. ... Барлы? к?ш? ба?дарламалар содан кей?н машинада са?талады, ж?не олар кодтауда к?рсет?лген н?м?р? бойынша олар?а ?ыс?аша с?лтеме жасау керек. Кей Макналти ENIAC командасында Джон Мочлимен ты?ыз байланыста ж?не ек?нш? д?ниеж?з?л?к со?ыс кез?нде ба?дарламалан?ан ENIAC компьютер?не арнал?ан к?ш? ба?дарлама идеясын ?з?рлед?. Ол ж?не ENIAC бас?а программистер? осы к?ш? ба?дарламаларды зымыран траекторияларын есептеу ?ш?н пайдаланды.

Гольдстайн ж?не Джон фон Нейман 1948 жылды? 16 тамызында?ы ма?аланы жазды, онда к?ш? ба?дарламаларды? пайдалылы?ы тал?ыланды. IBM 1620, Intel 4004 ж?не Intel 8008 сия?ты кейб?р ?те ерте компьютерлер мен микропроцессорлар, сондай-а? PIC микроконтроллерлер? кер? адрестерд? са?тау ?ш?н б?л?нген аппаратты? стект? пайдаланатын б?р н?с?аулы?пен к?ш? ба?дарлама ша?ыруы бар-м?ндай жабды? тек б?рнеше к?ш? ба?дарламаларды ?олдайды, б?ра? рекурсивт? к?ш? ба?дарламаларды да ?олдай алады. 1960—шы жылдарды? ортасына дей?нг? машиналар—UNIVAC I, PDP-1 ж?не IBM 1130 сия?ты-?детте ша?ыратын к?ш? ба?дарламаны? б?р?нш? жадында командаларды? санауышын са?тайтын ша?ыру туралы кел?с?мд? пайдаланады. Б?л ба?дарлама к?р?ст?л?г?н?? ерк?н тере? де?гей?н пайдалану?а м?мк?нд?к беред?, б?ра? рекурсивт? к?ш? ба?дарламаларды ?олдамайды. PDP-11(1970) - б?л к?ш? ба?дарламаны? итерг?ш стекаларын ша?ыру н?с?аулы?ы бар ал?аш?ы компьютерлерд?? б?р?; б?л функция к?ш? ба?дарламаларды? ерк?н тере? салынуын да, рекурсивт? к?ш? ба?дарламаларды да ?олдайды.

Т?л ?олдауы

[??деу?| ?айнарын ??деу]

Ал?аш?ы ассемблерлерде к?ш? ба?дарламаларды ?олдау шектеул? болды. К?ш? ба?дарламалар б?р-б?р?нен немесе нег?зг? ба?дарламадан аны? б?л?нген жо?, ж?не шын м?н?нде, к?ш? ба?дарламаны? бастап?ы коды бас?а к?ш? ба?дарламаларды? бастап?ы кодымен ауыстырылуы м?мк?н бол?ан. Кейб?р ассемблерлер ша?ыру ж?не ?айтару т?збектер?н жасау ?ш?н алдын ала аны?тал?ан микроба?дарламалауды ?сынады. 1960 жыл?а ?арай ассемблерлер ?детте к?р?кт?р?лген, сондай-а? оларды б?рге байлау?а болатындай ,жеке жинал?ан к?ш? ба?дарламаларды ?лде?айда к?рдел? ?олдау?а ие болды.

К?ш? ба?дарламалар к?тапханалары

[??деу?| ?айнарын ??деу]

Т?пт? м?ндай ?иынды? тудыратын т?с?лде к?ш? ба?дарлама ?те пайдалы болды. Б?р?нш?ден, олар к?птеген т?рл? ба?дарламаларда б?рдей кодты пайдалану?а м?мк?нд?к берд?. Сонымен ?атар, жады ерте компьютерлерде ?те тапшы ресурс болды ж?не к?ш? ба?дарламалар ба?дарлама к?лем?н айтарлы?тай ?немдеуге м?мк?нд?к берд?. К?птеген ерте компьютерлер ба?дарлама н?с?ауларын тес?мтаспадан жад?а ж?ктед?. Сонымен ?атар, ?р ба?дарлама нег?зг? ба?дарлама?а (немесе "mainline") дей?н немесе кей?н ж?ктелген немесе жал?астырыл?ан лентаны? жеке бумасымен ?амтамасыз ет?лу? м?мк?н; ж?не де к?ш? ба?дарламаны? сол лентасы к?птеген т?рл? ба?дарламалармен пайдаланылуы м?мк?н. Осындай т?с?л ?з?н?? нег?зг? енг?зу ?ш?н тес?мкарталарды пайдалан?ан компьютерлерде де ?олданылды. "К?ш? ба?дарламалар к?тапханасы" атауы алдымен ?жымды? пайдалану ?ш?н таспаларды? индекстелген коллекцияларын немесе карта колодын са?та?ан к?тапхананы б?лд?ред?.

?айтару жанама ?ту

[??деу?| ?айнарын ??деу]

?з бет?нше ?згерет?н кодты?(self-modifying code) ?ажетт?л?г?н жою ?ш?н, компьютерлерд? ?з?рлеуш?лер а?ырында жанама ?ту(indirect jump командасын ?сынды, оны? операндасы кер? адрест??(return address) орнына айнымалы немесе ?айтару адрест? ?амтитын процессор регистр?н??(processor register) орналас?ан жер? болды. Б?л компьютерлерде к?ш? ба?дарламаны? кер? ауысуын ?згертуд?? орнына ша?ырушы ба?дарлама кер? адрест? айнымалы ет?п са?тайды, сонды?тан К?ш? Ба?дарламаны орындау ая?тал?аннан кей?н ол жанама ауысуды орындайды, ол орындауды алдын ала аны?тал?ан айнымалы(predefined variable) бер?лген орын?а ж?беред?.

К?ш? ба?дарлама?а ?ту

[??деу?| ?айнарын ??деу]

Сонымен ?атар, ?осымша шы?ындарды барынша азайтып, кер? мекенжайды са?тауды б?р?кт?рген к?ш? ба?дарлама н?с?аулы?ына ауысу ал?а та?ы б?р ?адам болды. Мысалы, процедураларды ша?ыру?а арнал?ан IBM System / 360 bal немесе BALR тарма?тарында?ы н?с?аулар 14 регистр шарты бойынша н?с?аулы?та к?рсет?лген процессорды? регистр?ндег? кер? адрест? са?тап ?алады. Кер? оралу ?ш?н, ба?дарлама тек осы регистр ар?ылы (BR) тарма?тарды? жанама н?с?аулы?ын орындауы ти?с болды. Егер к?ш? ба?дарлама осы регистрге ?андай да б?р бас?а ма?сат ?ш?н ?ажет болса (мысалы, бас?а к?ш? ба?дарламаны ша?ыру ?ш?н), ол регистрд?? мазм?нын жеке жадында немесе регистрлерд?? стек?нде са?тап ?алады. HP 2100 сия?ты ж?йелерде JSB н?с?ауы, кер? мекен-жай тарма?тарды? ма?саты бол?ан жад ?яшы?ында са?тал?анын ?оспа?анда, ??сас тапсырманы орындал?ан ед?. Процедураны орындау келес? жад орнында басталады. Мысалы, HP 2100 ассемблер? т?л?нде жазу?а болады:

      ...
      JSB MYSUB    (Calls subroutine MYSUB.)
BB    ...          (Will return here after MYSUB is done.)

нег?зг? ба?дарламадан мен?? ?осал?ы ба?дарламам туында?ан к?ш? ба?дарламаны ша?ыру ?ш?н. К?ш? ба?дарлама келес?дей кодталады: MYSUB NOP (Storage for MYSUB's return address.)

AA    ...          (Start of MYSUB's body.)
      ...
      JMP MYSUB,I  (Returns to the calling program.)

Ша?ыру стэг?(Call stack)

[??деу?| ?айнарын ??деу]

?аз?рг? заман?ы ша?ыруларды ж?зеге асыру к?птеген ба?дарламалар ?о?ырау стек?н, жеке деректер стек ??рылымын пайдаланады, ша?ыруларды ?ске асыру ж?не к?ш? ба?дарламаларды ?айтару ?ш?н. Процедураны? ?рб?р ша?ыруы стек жа?тауы деп аталатын жа?а жазба жасайды; процедура ?айтарыл?анда, оны? стек жа?тауы стектен жойылады ж?не оны? ке??ст?г? процедураны? бас?а ша?ырулары ?ш?н пайдаланылуы м?мк?н. Стект?? ?р кадрында ?детте процедуралар параметрлер? мен ?шк? айнымалыларды, сондай-а? кер? адрест? ?амтитын ти?ст? ша?ыруды? жеке м?л?меттер? бар.

Ша?ырулар т?збег? ?арапайым н?с?ауларды? (reduced instruction set computing (RISC) ж?не very long instruction word (VLIW) с?улет?нде ?л? де пайдаланылатын т?с?л) ретт?л?г?мен ж?зеге асырылуы м?мк?н, б?ра? 1960-шы жылдарды? со?ында ?з?рленген к?птеген д?ст?рл? машиналар осы ма?сат ?ш?н арнайы н?с?ауларды ?амтиды. ?о?ырау стег? ?детте ?зд?кс?з жады айма?ы рет?нде ?ске асырылады. Б?л дизайн ерк?н та?дау, стек т?менг? б?л?г? осы салада?ы е? т?мен немесе е? жо?ары мекен-жайы болып табылады ма, сонды?тан стек жадында ал?а немесе арт?а ?су? м?мк?н; алайда к?птеген с?улет со??ысын та?дады.

Кейб?р конструкцияларда, ?с?ресе кейб?р т?рт?нш? ?ске асыруда ек? б?лек стек пайдаланылды, б?реу? нег?з?нен бас?ару а?паратына (мысалы, кер? адрестер мен циклдерд?? есептеу?штер?), ек?нш?с?-деректер ?ш?н. Б?р?нш? ?о?ырау стек рет?нде ж?мыс ?стед? ж?не бас?а т?л конструкциялары ар?ылы ба?дарламашы жанама ?ол жет?мд? болды, ал ек?нш? т?келей ?ол жет?мд? болды. Стек нег?з?нде процедураларды? ша?ырулары ал?аш рет пайда бол?ан кезде, ма?ызды ынталандыру ?ымбат жадты са?тау болды.б?л схеманы пайдалану кез?нде компилятор ?рб?р процедураны? жеке деректер? ?ш?н (Параметрлер, кер? мекенжай ж?не жерг?л?кт? айнымалы) жадында?ы жеке ке??ст?кт? резервте са?тау ?ажет емес. Кез келген уа?ытта стек тек жеке ?о?ырау деректер? бар, олар ?аз?рг? уа?ытта белсенд? (атап айт?анда, ша?ырыл?ан, б?ра? ?айта оралма?ан). Ба?дарламалар ?детте к?тапханалардан жинал?ан бол?анды?тан (ж?не ?л? к?нге дей?н ?алады) мы?да?ан к?ш? ба?дарламаларды ?амтитын ба?дарламаларды табу сирек болмады, оларды? тек б?рнешеу? ?аз?рг? уа?ытта белсенд?.м?ндай ба?дарламалар ?ш?н ?о?ырау со?у механизм? жад к?лем?н ?немдеу? м?мк?н. Шын м?н?нде, ?о?ырау стег?н?? механизм?н жадыны автоматты бас?аруды? е? ерте ж?не ?арапайым ?д?с? рет?нде ?арастыру?а болады.

Алайда, ша?ырулар стег?н?? та?ы б?р арты?шылы?ы-ол к?ш? ба?дарламаларды рекурсивт? функция ша?ыру?а жол беред?,?йткен? б?р процедура?а салын?ан ?рб?р ша?ыруды? жеке м?л?меттер?н алады.

Стэк к?д?р?с?(Delayed stacking)

[??деу?| ?айнарын ??деу]

Ша?ырулар стек тет?г?н?? кемш?л?ктер?н?? б?р? процедураны ша?ыруды? жо?ары ??ны ж?не оны ти?ст? ?айтару болып табылады.?осымша шы?ындар стек к?рсетк?ш?н ?л?айту ж?не азайту (ж?не, кейб?р архитектураларда, стект?? толып кету?н тексеру), сондай-а? абсолютт?к мекен-жайлар бойынша емес, фреймн?? салыстырмалы мекен-жайлары бойынша жерг?л?кт? айнымалы ж?не параметрлерге ?ол жетк?зуд? ?амтиды. ??ны орындау уа?ытын ?л?айту, немесе процессорды? к?рдел?л?г?н арттыру, немесе ек? жа?дайда да ?ске асырылуы м?мк?н.

Б?л ?стеме шы?ындар е? ай?ын ж?не пара?ты? процедураларда немесе пара?ты? функцияларда ?ажет емес, олар процедураларды? ?з?н?? ?андай да б?р ша?ыруларын орындамай ?айтарылады.осы ?стеме шы?ындарды азайту ?ш?н, к?птеген ?аз?рг? заман?ы компиляторлар ол шын м?н?нде ?ажет бол?анша ша?ыру стег?н пайдалануды к?д?ртуге тырысады.мысалы, p процедурасын ша?ыру процессорды? белг?л? б?р т?ркел?мдер?нде кер? мекен-жайы мен ша?ырылатын процедураны? параметрлер?н са?тай алады ж?не процедураны? денес?н бас?аруды ?арапайым ж?ктеу ар?ылы бере алады. Егер p процедурасы кез келген бас?а ?о?ырауды орындамай ?айтарылса, ?о?ырау белг?шес? м?лдем пайдаланылмайды. Егер P бас?а Q процедурасын ша?ыру ?ажет болса, ол Q ?айтарыл?аннан кей?н ?ажет болатын кез келген регистрлерд?? мазм?нын (мысалы, кер? адрест?) са?тау ?ш?н ?о?ырау стег?н пайдаланатын болады.?осымша шы?ындар стек к?рсетк?ш?н ?л?айту ж?не азайту (ж?не, кейб?р архитектураларда, стект?? толып кету?н тексеру), сондай-а? абсолютт?к мекен-жайлар бойынша емес, фреймн?? салыстырмалы мекен-жайлары бойынша жерг?л?кт? айнымалы ж?не параметрлерге ?ол жетк?зуд? ?амтиды. ??ны орындау уа?ытын ?л?айту, немесе процессорды? к?рдел?л?г?н арттыру, немесе ек? жа?дайда да ?ске асырылуы м?мк?н.

C ж?не C++ ?лг?лер?

[??деу?| ?айнарын ??деу]

C ж?не C++ ба?дарламалау т?лдер?нде к?ш? ба?дарлама функциялары деп аталады (б?дан ?р?, олар класпен байланысты бол?ан кезде м?ше функциялар рет?нде немесе бос функциялар болма?ан кезде ж?ктелед?). Б?л т?лдер функциясы еш?андай м?нд? ?айтармайды деп к?рсету ?ш?н арнайы void к?лт с?з?н ?олданады. C/C++ функциясыны? параметрлер? рет?нде бер?лет?н кез келген айнымалыларды ?згертуд? ?оса ал?анда, жанама ?серлер? болуы м?мк?н екен?н ескер???з. Мысалдар: void Function1() { /* some code */ } Функция м?нд? ?айтармайды ж?не автономды функция рет?нде та?далуы керек,мысалы Function1(); int Function2() {

 return 5;

} Б?л функция н?тижен? ?айтарады (5 саны) ж?не ша?ыру ?рнект?? б?л?г? болуы м?мк?н,мысалы x + Function2() char Function3(int number) {

 char selection[] = {'S', 'M', 'T', 'W', 'T', 'F', 'S'};
 return selection[number];

} Б?л функция 0-ден 6-?а дей?нг? санды аптаны? ти?ст? к?н?н?? бастап?ы ?рп?не т?рленд?ред?, атап айт?анда 0-ден "S" - ге, 1-ден "M" - ге дей?н..., 6-дан "С"дей?н. Ша?ыру н?тижес? айнымалы бер?лу? м?мк?н,мысалы: num_day =Function3(number);. void Function4(int* pointer_to_var) {

 (*pointer_to_var)++;

} Б?л функция м?нд? ?айтармайды, б?ра? мекен-жайы параметр рет?нде бер?лет?н айнымалыны ?згертед?; ол Function4(&variable_to_increment);. ар?ылы ша?ырылады



Жерг?л?кт? айнымалы, Рекурсия ж?не реентерабельд?л?к

[??деу?| ?айнарын ??деу]

К?ш? ба?дарлама бос ке??ст?кт?? белг?л? б?р санын, я?ни аралы? н?тижелерд? са?тау ?ш?н осы К?ш? Ба?дарламаны орындау кез?нде пайдаланылатын жадты пайдалы деп есептеу? м?мк?н. Б?л уа?ытша ке??ст?кте са?тал?ан айнымалылар жерг?л?кт? айнымалы деп аталады,ал уа?ытша ке??ст?к-белсенд?ру жазбасы. ?ске ?осу жазбасында, ?детте, ба?дарлама ая?тал?анда, кер? бас?аруды ?ай жерге ж?беруд? к?рсетет?н ?айтару мекен-жайы бар. К?ш? ба?дарлама кез келген ша?ыру сайттарыны? саны мен сипаты болуы м?мк?н. Егер рекурсия ?олдау к?рсет?лсе, к?ш? ба?дарлама ?з?н тудыруы м?мк?н, соны? н?тижес?нде оны орындау то?татыла т?рады,ал сол к?ш? ба?дарламаны? бас?а салын?ан орындалуы орын алады. Рекурсия кейб?р к?рдел? алгоритмдерд? о?айлату ж?не к?рдел? есептерд? б?лшектеу ?ш?н пайдалы ??рал болып табылады. Рекурсивт? т?лдер ?детте ?рб?р ша?ыруда жерг?л?кт? айнымалыларды? жа?а к?ш?рмес?н ?сынады. Егер ба?дарламашы жерг?л?кт? айнымалыларды? м?н? ?о?ырауларды? арасында ?згер?сс?з ?ал?анын ?ал?ысы келсе, олар кейб?р т?лдерде статикалы? болып жариялануы м?мк?н немесе жа?анды? м?ндер немесе жалпы айма?тар пайдаланылуы м?мк?н. М?нда Фибоначчи сандарды ?здеу ?ш?н C / C++ рекурсивт? ба?дарлама мысалы: int Fib(int n) {

 if (n <= 1) {
   return n;
 }
 return Fib(n - 1) + Fib(n - 2);

} Fortran сия?ты ерте т?лдер бастап?ыда рекурсияны ?олдамады, ?йткен? айнымалылар статикалы? т?рде б?л?нген, сондай-а? кер? мекен-жай?а арнал?ан орын. К?птеген компьютерлер 1960 жылдарды? со?ына дей?н PDP-8 сия?ты аппаратты? ?йнек регистрлер?н?? ?олдауына ие бол?ан жо?. М?ндай PL/I ж?не C сия?ты ALGOL(Алгол) кей?н ?аз?рг? заман?ы т?лдер, ?детте ?рб?р К?ш? Ба?дарламаны орындау ?ш?н ?ске ?осуды? жа?а жазбасын ?амтамасыз ету ?ш?н ?аз?рг? заман?ы компьютерл?к командаларды? к?пш?л?г? ?олдайтын стек ?р?ашан дерл?к пайдаланады. Осылайша, салын?ан орындау бас?а то?татыл?ан операциялар?а ?сер ету туралы ала?дамай, ?з?н?? жерг?л?кт? айнымалыларын ерк?н ?згерте алады. Салын?ан ?о?ырауларды? жиналуына ?арай, ?рб?р к?д?рт?лген ба?дарлама ?ш?н б?р ?ске ?осу жазбасынан т?ратын ?о?ырау стег?н?? ??рылымы ?алыптасады. Шын м?н?нде, стект?? б?л ??рылымы барлы? жерде, сонды?тан активтенд?ру жазбалары ?детте стек кадрлары(stack frames) деп аталады. Pascal, PL/I ж?не Ada(Ада) сия?ты кейб?р т?лдер, сондай-а? ?шк? (Бас) к?ш? ба?дарламаны? ?рекет ету аума?ы шег?нде ?ана ша?ырылатын к?ш? ба?дарламалар болып табылатын ?шк? к?ш? ба?дарламаларды ?олдайды. ?шк? к?ш? ба?дарламалар жерг?л?кт? сырт?ы к?ш? айнымалы ?ол жет?мд?, ол оларды тудырды. Б?л ?осу жазбасында ?осымша контекст?к а?паратты са?тау ар?ылы ?ол жетк?з?лед?, сондай-а? дисплей деп аталады.

Егер к?ш? ба?дарлама сол к?ш? ба?дарламаны? бас?а орындалуы орындалса да д?рыс орындалуы м?мк?н болса, онда б?л к?ш? ба?дарлама реентерабельд? деп аталады. Рекурсивт? к?ш? ба?дарлама реентерабельд? болуы ти?с. Реентерабельд? к?ш? ба?дарламалар к?п а?ынды жа?дайларда да пайдалы, ?йткен? б?рнеше а?ын б?р-б?р?не араласудан ?оры?пай, сол б?р К?ш? Ба?дарламаны тудыруы м?мк?н. IBM(International Business Machines) CICS транзакцияларды ??деу ж?йес?нде квази-реентерабельд?л?к б?ршама ?ата?, б?ра? к?птеген а?ындармен б?л?нген ?олданбалы ба?дарламалар ?ш?н ??сас талап болды. К?п а?ынды ортада ?детте б?рнеше стег? бар. Те? ба?дарлама(сопрограмма) немесе жал?ау ба?аны толы?ымен ?олдайтын орта, ?ске ?осу жазбаларын са?тау ?ш?н шыныдан ?згеше деректер ??рылымын пайдалана алады.

Шамадан арты? ж?ктеме(Overloading)

[??деу?| ?айнарын ??деу]

?ата? типтелген т?лдерде кейде аты б?рдей, б?ра? ?р т?рл? деректер т?р?нде ж?мыс ?стейт?н немесе ?р т?рл? параметрлер профил? бар б?рнеше функцияларды? болуы ?ажет. Мысалы, квадратты? т?б?рд?? функциясы релелермен, кешенд? м?ндермен немесе матрицалармен ж?мыс ?стеу ?ш?н аны?талуы м?мк?н. ?рб?р жа?дайда ?олданылатын Алгоритм ?рт?рл? ж?не ?айтарылатын н?тиже ?рт?рл? болуы м?мк?н. Б?рдей аты бар ?ш жеке функцияларды жазу ар?ылы программист деректерд?? ?р т?р?не ?р т?рл? аттарды есте са?тау?а ы??айлылы?ы бар. Одан ?р?, егер реалдар ?ш?н о? ж?не тер?с реалдарды б?лу ?ш?н подтипт? аны?тау?а болатын болса, реалдар ?ш?н ек? функцияны жазу?а болады: б?реу? параметр о? бол?ан кезде заттай м?нд?, ал ек?нш?с? параметр тер?с бол?ан кезде кешенд? м?нд? ?айтарады. Объект?л?-ба?ыттал?ан ба?дарламалауда, б?рдей атымен б?рнеше функциялар ?р т?рл? параметрлерд?? профильдер?н немесе ?р т?рл? параметрлерд? ?абылдай алатын болса, функцияларды? ?р?айсысы шамадан тыс ж?ктелген болып саналады. М?нда С++-тег? ба?дарлама шамадан арты? ж?ктеу ?лг?с?:


 #include <iostream>
 double Area(double h, double w) { return h * w; }
 double Area(double r) { return r * r * 3.14; }
 int main() {
 double rectangle_area = Area(3, 4);
 double circle_area = Area(5);
 std::cout << "Area of a rectangle is " << rectangle_area << std::endl;
 std::cout << "Area of a circle is " << circle_area << std::endl;
 }

Б?л кодта б?рдей аты бар ек? функция бар, б?ра? олар ?рт?рл? параметрлерге ие. Бас?а мысал рет?нде, ба?дарлама ба?ыттарын ?абылдайтын ж?не экранда?ы осы н?ктелерге ?з жолын ?ада?алайтын нысанды ??ра алады. Конструктор?а бер?лу? м?мк?н к?птеген параметрлер бар (трассалау т?с?, X ж?не y бастап?ы координаттары, трассалау жылдамды?ы). Егер программист конструктор тек т?с параметр?н ?абылдай ал?ысы келсе, онда ол бас?а барлы? параметрлер ?ш?н ?депк? м?ндерд? берет?н барлы? параметрлер? бар конструктор ша?ыратын т?с ?ана ?абылдайтын бас?а конструкторды ша?ыруы м?мк?н (X ж?не Y ?детте экранда орталы?тандырылады немесе координаттарды? басына орналастырылады, ал жылдамды? кодерд? та?дау бойынша бас?а м?нге орнатылады). PL / I ?р т?рл? аргументтер типтер?мен ша?ырыл?ан жазбалар?а с?лтемелерд? теру ?ш?н орта? атауды аны?тау ?ш?н GENERIC атрибуты бар. Мысал: DECLARE gen_name GENERIC(

                     fbname  WHEN(FIXED BINARY),
                     flname  WHEN(FLOAT),
                     othname OTHERWISE 
                          );

?рб?р жазу ?ш?н б?рнеше д?лелдер аны?тамасы бер?лу? м?мк?н. "Gen_name "ша?ыруы" fbname" ша?ыруына ?келед?, егер аргумент FIXED BINARY," filename", FLOAT ж?не т.б. болса.

Жап?ыштар(Closures)

[??деу?| ?айнарын ??деу]

Жап?ыш-ол ??рыл?ан ортадан алын?ан кейб?р айнымалы м?ндер?мен б?рге к?ш? ба?дарлама. Т?йы?талу Джон Маккарти енг?зген Lisp ба?дарламалау т?л?н?? ай?ын ерекшел?г? болды. ?ске асыру?а байланысты, жабу жанама ?серлер? ?ш?н механизм? болуы м?мк?н.

Конвенциялар(Conventions)

[??деу?| ?айнарын ??деу]

К?ш? ба?дарламаларды кодтау ?ш?н к?птеген шартты белг?лер жасалды. Оларды? аттарына келет?н болса?, к?птеген ?з?рлеуш?лер к?ш? ба?дарлама Атауы белг?л? б?р м?ндетт? орында?ан кезде ет?ст?к болуы ти?с, ол кейб?р с?рау жаса?ан кезде сын ес?м, ж?не ол айнымалы ауыстыру ?ш?н пайдаланыл?ан кезде зат. Кейб?р программистер к?ш? ба?дарлама тек б?р ?ана м?ндетт? орындауы ти?с деп болжайды ж?не егер к?ш? ба?дарлама б?реуден арты? м?ндетт? орындайтын болса, ол б?рнеше к?ш? ба?дарлама?а б?л?ну? ти?с. Олар ба?дарлама код?а ?ызмет к?рсетуд??(code maintenance) нег?зг? компоненттер? болып табылады ж?не оларды? ба?дарламада?ы р?л? ?р т?рл? болуы ти?с. Модульд?к ба?дарламалауды? жа?тастары (modularizing code) ?рб?р к?ш? ба?дарлама кодты? бас?а б?лшектер?не е? аз т?уелд?л?кке ие болуы ти?с деп м?л?мдейд?. Мысалы, жа?анды? айнымалыларды пайдалану, ?детте, б?л к?з?арасты? а?ылсыз жа?тастары болып саналады, ?йткен? ол к?ш? ба?дарлама мен осы жа?анды? айнымалыларды? арасында?ы ты?ыз байланысты ?осады. Егер м?ндай байланыс ?ажет болмаса, оларды? ке?ес? оны? орнына бер?лген параметрлерд? ?абылдау ?ш?н к?ш? ба?дарламаларды рефакторингте т?рады. Алайда, ба?дарлама бойынша бер?лет?н параметрлер саныны? артуы кодты? о?ылуына ?сер ету? м?мк?н.

?айтару кодтары(Return codes)

[??деу?| ?айнарын ??деу]

Нег?зг? немесе ?алыпты ?серден бас?а, к?ш? ба?дарлама оны орындау кез?нде туындауы м?мк?н ерекше шарттар туралы ша?ырушы ба?дарлама?а хабарлау талап ет?лу? м?мк?н. Кейб?р т?лдер мен ба?дарламалау стандарттарында б?л жи? ?айтару коды, ?алыпты ж?не ерекше жа?дайларды кодтайтын кейб?р стандартты жерде к?ш? ба?дарлама орналастырыл?ан б?т?н м?н? ар?ылы жасалады. IBM System / 360, м?нда ?айтару коды к?ш? ба?дарламадан к?т?лген, ?айтарылатын м?н жи? 4 есе есептелген—сонды?тан оны ?осымша шартты тесттерд? болдырмау ?ш?н ша?ыру н?с?аулы?ынан кей?н жи? орналас?ан тарма? кестес?не тарма?тарды? т?келей индекс? рет?нде пайдалану?а болады, б?л одан да к?п ти?мд?л?кт? арттырады. Мысалы, асемблерде System / 360 жазу?а болады: BAL 14,SUBRTN01 go to subroutine, storing return address in R14

          B    TABLE(15)      use returned value in reg 15 to index the branch table, 
  • branching to the appropriate branch instr.
                                 TABLE 
          B    OK             return code =00   GOOD                  }
          B    BAD            return code =04   Invalid input         } Branch table
          B    ERROR          return code =08   Unexpected condition  }

К?ш? ба?дарламаларды ша?ыруларды о?тайландыру

[??деу?| ?айнарын ??деу]

?осымша шы?ындар жи? процессорды? белг?л? б?р регистрлер?н са?тау ж?не ?алпына келт?ру, ?о?ырау кадрларыны? жадын б?лу ж?не ?алпына келт?ру ж?не т. б. ?амтиды.. Кейб?р т?лдерде ?рб?р ба?дарлама ?о?ырауы, сондай-а?, ба?дарлама ?айтару кодын автоматты т?рде тексеруд? немесе ол тудыруы м?мк?н ерекшел?ктерд? ??деуд? б?лд?ред?. Объект?л?-ба?ыттал?ан т?лдерде ?стеме шы?ындарды? ма?ызды к?з? болып ?д?стерд? ша?ыруды? ?ар?ынды ?олданылатын динамикалы? диспетчерлену? табылады. Процедуралар жанама ?серлер? болуы м?мк?н, егер кейб?р ай?ын о?тайландыру процедуралар ?олданылуы м?мк?н емес р?с?мдер бар. Мысалы, м?нде(f(x)-1)/(f(x)+1) f функциясы ек? рет ша?ырылуы ти?с, себеб? б?л ек? ?о?ырау ?р т?рл? н?тижелерд? ?айтаруы м?мк?н. Сонымен ?атар, x м?н? ек?нш? ?о?ырау алдында ?айта алынуы керек, себеб? б?р?нш? ?о?ырау оны ?згерте алады. К?ш? ба?дарламаны? жанама ?сер? болуы м?мк?н бе, ?те ?иын (т?пт? шеш?лмейт?н).осылайша, б?л о?тайландыру таза функционалды? ба?дарламалау т?лдер?нде ?ау?пс?з бол?анымен, типт?к императивт? ба?дарламалау компиляторлары ?детте нашар болуы ти?с.

К?р?ст?ру(Inlining)

[??деу?| ?айнарын ??деу]

Осы ?осымша шы?ындарды жою ?ш?н ?олданылатын ?д?с - б?л ?рб?р байланыс торабында к?ш? ба?дарлама денес?н?? к?р?кт?р?лген ке?ею?(inlining expansion) немесе инлайнинг? (к?ш? ба?дарлама тарма?ына ж?не кер? ?айт?ан концептке ?ара?анда). Б?л тек ша?ыру?а арнал?ан ша?ыру шы?ындарды болдырмау ?ана емес, сонымен ?атар компилятор?а ша?ыруда контекст пен д?лелдерд? назар?а ала отырып, процедураны? денес?н ти?мд? о?тайландыру?а(optimize) м?мк?нд?к беред?. Салын?ан денен? компилятор о?тайландыруы м?мк?н. Алайда, к?р?ст?ру ?детте код м?лшер?н арттырады, егер ба?дарлама тек б?р ?ана ба?дарлама ша?ыруын немесе ?шк? ба?дарлама денес?н ?амтымайтын болса, онда ?осымша ша?ыру шы?ынынан аз код жо?.

Дерекк?здер

[??деу?| ?айнарын ??деу]
  1. ?аза? т?л? терминдер?н?? салалы? ?ылыми т?с?нд?рме с?зд?г?: Информатика ж?не компьютерл?к техника / Жалпы редакциясын бас?ар?ан т?с?нд?рме с?зд?ктер топтамасын шы?ару ж?н?ндег? ?ылыми-баспа ба?дарламасыны? ?ылыми жетекш?с?, педагогика ?ылымдарыны? докторы, профессор, ?аза?стан Республикасы Мемлекетт?к сыйлы?ыны? лауреаты А.?.??сайынов. – Алматы: ?Мектеп? баспасы? ЖА?, 2002 жыл. – 456 бет. ISBN 5-7667-8284-5
快速眼动是什么意思 什么水果含铁量最高 尿频是什么原因引起的 灰指甲用什么药好 医保是什么
两千年前是什么朝代 维生素d什么牌子的好 为什么要割包皮 知乎是干什么的 傀儡什么意思
触霉头是什么意思 三个白念什么 办健康证挂什么科 摇滚是什么意思 道地是什么意思
抽筋是什么原因引起的 荷花像什么 法国的货币叫什么 he是什么气体 精忠报国是什么生肖
站久了脚后跟疼是什么原因hcv8jop5ns1r.cn 虾不能和什么东西一起吃hcv7jop5ns3r.cn 自由职业可以做什么hcv9jop8ns1r.cn 眼睛红是什么原因引起的hcv9jop0ns4r.cn 跟腱炎贴什么膏药最好hcv8jop6ns6r.cn
黄猫来家里有什么预兆hcv9jop3ns6r.cn 阑尾是什么hcv8jop2ns3r.cn 山竹有什么好处hcv9jop1ns2r.cn 脚踝肿挂什么科hcv8jop5ns2r.cn 病毒感染是什么原因tiangongnft.com
什么样的梦想hcv8jop8ns2r.cn 红色裤子搭配什么颜色上衣hcv8jop7ns5r.cn 玉米须煮水喝有什么好处hcv7jop9ns7r.cn 女性尿道口有小疙瘩是什么原因hcv8jop6ns0r.cn 嘴唇有痣代表什么hcv8jop0ns6r.cn
养肺补肺吃什么药最好hcv9jop4ns0r.cn 狗属于什么类动物wzqsfys.com 手抖是什么病hcv8jop1ns8r.cn 正常人吃叶酸有什么好处hcv8jop2ns8r.cn 生孩子需要准备什么东西hcv9jop3ns1r.cn
百度