Кіріспе
Компьютерлік бағдарламалау операциясы – деректер құрылымы операциясы. Компьютерлік бағдарламалауда массивті тіліп алу – массивтен элементтердің бір бөлігін алып, оларды жаңа массив ретінде, мүмкін түпнұсқа массивтен өзгеше өлшемде жинақтау операциясы. Массивті тіліп алудың кең таралған мысалдары – әріптер тізбегінен бір сөзді бөліп алу, мысалы, "hello" сөзінен "ell" бөлігін, екі өлшемді массивтен қатар немесе бағанды бөліп алу, немесе матрицадан векторды бөліп алу. Бағдарламалау тіліне байланысты, массивті тіліп алу үшін қатарынан келмейтін элементтерді де пайдалануға болады. Сонымен қатар, тілге байланысты, жаңа массивтің элементтері бастапқы массивтің элементтерімен (яғни, бірдей жад орынды бөлісу арқылы) байланысты болуы мүмкін.
the data structure operation
In computer programming, array slicing is an operation that extracts a subset of elements from an array and packages them as another array, possibly in a different dimension from the original. Common examples of array slicing are extracting a substring from a string of characters, the "ell" in "hello", extracting a row or column from a two dimensional array, or extracting a vector from a matrix. Depending on the programming language, an array slice can be made out of non consecutive elements. Also depending on the language, the elements of the new array may be aliased to (i. e., share memory with) those of the original array.
Егжей-тегжейлер
"Бір өлшемді" (бір индекстелген) массивтер, векторлар, тізбектер және т.б. үшін ең көп қолданылатын кесу операциясы – нөл немесе одан көп сандағы тікелей элементтерді бөліп алу. Мысалы, егер бізде (2, 5, 7, 3, 8, 6, 4, 1) элементтерінен тұратын вектор болса және оның 3-тен 6-ға дейінгі элементтерін кесіп алғымыз келсе, (7, 3, 8, 6) кесіндісін аламыз. 0-ға негізделген индекстеу схемасын қолданатын бағдарламалау тілдерінде бұл кесінді 2-ден 5-ке дейінгі индекс аралығын қамтиды. Кез келген индекстің диапазонын бір мәнге дейін қысқарту сол индекстің мәнін жоюға тең. Бұл мүмкіндікті, мысалы, үш өлшемді массивтен бір өлшемді кесінділерді (векторларды: 3D кеңістікте жолдар, бағандар және түтіктер) немесе екі өлшемді кесінділерді (төртбұрышты матрицаларды) алу үшін пайдалануға болады. Дегенмен, диапазон орындалу барысында анықталатындықтан, типтік тексеруді қолданатын тілдерге тривиальды индекстерді жою үшін нақты (компиляция уақытында) белгілеу қажет болуы мүмкін. Жалпы массивті кесу (тілде құрылған немесе құрылмаған) әрбір массивтің доп-векторы немесе дескрипторы арқылы жүзеге асырылуы мүмкін. Бұл жазба массивтің бірінші элементінің мекенжайын, содан кейін әрбір индекстің диапазонын және индекстеу формуласындағы тиісті коэффициентті қамтиды. Бұл техника массивтің транспозициясын, индекстерді кері аударуды, субдискретизацияны және т.б. бірден жүзеге асыруға мүмкіндік береді. C сияқты тілдерде индекстер әрқашан нөлден басталатын болса, d индексі бар массивтің доп-векторында кем дегенде 1 + 2d параметр болады. Паскаль сияқты индекстер үшін кез келген төменгі шекараға рұқсат беретін тілдер үшін доп-векторына 1 + 3d жазба қажет. Егер массив абстракциясы нақты теріс индекстерді қолдамаса (мысалы, Ada және Pascal массивтері сияқты), онда берілген өлшемдегі кесіндінің шекаралары үшін теріс индекстер кейде массивтің соңынан ауытқуды көрсету үшін қолданылады. 1-ге негізделген схемаларда 1 әдетте соңғыдан екінші элементті білдіреді, ал 0-ға негізделген жүйеде – соңғы элементті білдіреді.
Тарих
Слайдтау туралы түсінік компиляторлар ойлап табылғанға дейін-ақ белгілі болған. Тілдік мүмкіндік ретінде слайдтау, FORTRAN (1957) тілінен бастау алған болуы мүмкін, бірақ бұл жобалаудың нәтижесі емес, типтік және диапазондық тексерудің болмауынан туындаған. Бұл ұғым IAL (ALGOL 58) үшін дайындалған алдын ала есепте де қамтылған, себебі синтаксис массив элементінің (немесе процедура шақырудың) бір немесе бірнеше индекстерін нақты параметр ретінде қолданғанда жіберуге мүмкіндік берді. Кеннет Айверсонның APL (1957) тілінде өте икемді көп өлшемді массивты слайдтау мүмкіндігі болды, ол тілдің көркемдік қуатына және танымалдығына үлкен үлес қосты. ALGOL 68 (1968) көп өлшемді массивтарды слайдтау және қысқарту мүмкіндіктерін енгізді. Массивты слайдтау мүмкіндіктері бірнеше қазіргі заманғы тілдерге енгізілді, мысалы Ada 2005, Cobra, D, Fortran 90, Go, Rust, Julia, MATLAB, Perl, Python, S Lang, Windows PowerShell және математикалық/статистикалық GNU Octave, S және R тілдері.