بررسی تقلیل هستی به داده!
کدام خاصیت یا خاصیتهای هستی غیرقابل تقلیل به داده یا گزاره هستند؟
بررسی تقلیل هستی به داده!
کدام خاصیت یا خاصیتهای هستی غیرقابل تقلیل به داده یا گزاره هستند؟
اگر فرض کنیم، در یک بازی کامپیوتر هستیم و به عنوان یک شبیهسازی کامپیوتریای بیش نیستیم، چه نتایجی برای تقویت هستیشناسی خود خواهیم گرفت؟
یک برنامهی کامپیوتری اجرا شده حاوی چه موارد قطعیای قابل تشخیص از سوی بازیگران معرفتپذیر داخل بازی است؟
معرفت فعلی: ۳۰ مارچ ۲۰۲۳
اگر حرکت را به عدم امکان تسخیر و تحدید به یک برش دادهای/ گزارهای تعبیر کنیم. یعنی چیزی که حرکت دارد، بنا به خاصیت خود، بزرگتر از هر برش ریز و خردی خواهد بود که برای تسخیر و کشف آن زده خواهد شد. در این حالت، این بزرگتر و بیشتر و فراتر بودن، به معنی شکست هدف این نوشتار در تسخیر و تقلیل هستی متحرک و در حال شدن به داده یا جمعی جبری از گزارههای واقعنما خواهد بود.
مقدمه
هستی چیست؟ آیا میتوان برشی معین از هستیبودگی را (تصویر یک لحظه از هستی به تعبیری که ما میشناسیم و در کیهان خود متجلی میبینیم) در یک آبجکت جیسون JSON Object که خطوط شمارایی از زوجهای نام/ارزش (Name/ Value Pairs) هستند بازنویسی کرد؟
اگر هر شیء فیزیکی را، (در تمایز با اشیای دیگر فیزیکی) چیزی بدانیم که قابلیت توصیف فیزیکی دارد. به تعبیر دیگر قبول میکنیم ویژگیها و توصیفاتی (Names) هستند که با تخصیص کمیاتی (ارزشهایی Values) به آنها، تمامی اشیای فیزیکی را از یکدیگر میتوان متمایز کرد. بنابراین و بنا به اصل پایستگی فهرست شمارایی از این اشیاء و عناصر فیزیکی وجود دارند که دارای ویژگیهایی هستند که هر ویژگی حاوی ارزشی ویژه برای آنها است. با قبول اینکه خود جایگزیدگی و مکان نیز یک ویژگی متمایزکننده محسوب میشود، چینش و پراکنش این اشیاء و ذرات در آن برش از هستی خود بر روی این داده-شیء به خوبی قابل تبیین است.
با این توضیحات میتوان قابلیت توصیف آن بخش مشاهدهپذیر و کمیتپذیر و تمایزپذیر یک برش زمانی از هستی را توسط یک آبجکت جیسون (داده-شیء) قبول کرد.
آیا هستی، حتی همین هستی فیزیکی تنها همین موارد *-مشاهدهپذیر و **-کمیتپذیر و ***-متمایزکننده است؟
- فراداده/ دادههای ثابت: این داده-شیء قابلیتهای دیگری نیز دارد، میتوان در آن بخشی را به ذخیرهی روابط، قواعد و ویژگیهای مشترک و عمومی هستی نیز اختصاص داد. مواردی که در هر برشی از هستی تغییر نمیکنند! بیایید این قسمت را فراداده (Metadata) و یا دادههای مستقر در سرداده (Header) بنامیم.
- توصیف توانمندی و بالقوگی: چالش دیگر، آن بخش از هستی است که برانگیخته نشده و در حالت فرضاً سوپرپوزیشن قرار دارد و نمیتوان کمیتی را به آن تخصیص داد! برای این موارد هم میتوان: ۱. روابط تعیینکنندهی بروز و ظهور آنها را به عنوان آشکارکنندههای در زمان نیاز آنها دانست. یعنی Functionهای فراداده و یا روابط بین سایر ویژگیها بر اساس آن روابط فرادادهای از سایر ویژگیها قابل استنتاج و استخراج باشد. ۲. یا کمیت آن را به شکل رابطهای (Function) در مقابلش نمایش داد. چرا که ارزشها خود میتوانند داده-شیء دیگری باشند و یا قواعد و روابطی باشند و یا ماتریس باشند و یا سایر اشکال دادهای داشته باشند! در این حالت، ضرایب و توابع متغیری در هر برش میتوانیم داشته باشیم که لزوماً تکراری و یکسانی توابع فرادادهای را نداشته باشند!
- توصیف حرکت و تغییر: چالش دیگر، آیا میتوان مواردی مثل حرکت را که ویژگیهای ارتباطی و روابط بین سایر ویژگیها هستند و قابلیت برداشت لحظهای و برشی ندارند، به صورت ویژگی نشان داد؟ خود این موارد چگونه ذخیرهسازی خواهند شد و چگونه قابلیت تعین خواهند یافت! (با توجه به اینکه در مشتقگیری با از دست دادن دادهها و نادقتی در محاسبه و تخمین روبرو هستیم) نادقتی و از دست رفتن داده، خود در نهایت به تعبیری عدم امکان ذخیرهی کامل هستی در یک شیء داده میتواند باشد. ۱. آیا برای مثال، شتاب اولیه و یا سرعت اولیه خود ویژگی یک شیء خواهند بود؟ یا تنها جایگزیدگی/ مکان شیء است که جزو ویژگیهای آن شیء در آن برش هستند! ۲. آیا یک قابلیت زمینهای به نام حرکت و سرعت بهشکل عمومی برای تمامی اشیای هستی وجود دارد و تنها مقاومت در مقابل آن به عنوان ویژگی قابل ثبت است. و این مقاومت از خود ویژگیها بر اساس روابطی قابل محاسبه است. ۳. آیا چیزی مثل حرکت اثر توپولوژی و امری بروزیافته و عارض شده است و خود توسط بقیه روابط و ویژگیها به دست خواهد آمد.
- گنگی و برآوردی بودن: آیا خود فرادادهها، از تعین و قطعیت و خطی بودن برخوردارند؟ برای مثال آیا مواردی رابطهای که غیرجبری هستند و در هستی وجود دارند، برای مثال عدد پی یا عدد نپری که اعدادی گنگ هستند، مشکلساز نمیشوند! یعنی بسته نبودن و قطعی نبودنی که حاصل این گنگبودگی است، به حذف اطلاعات و عدم قابلیت ذخیرهسازی آنها میانجامد، بهشکلی که به نظر میرسد، مواردی باشند که نتوان در این نگاشت گسسته از هستی آنها را جای داد!
….
به نظر نمیتوان کامل و بدون فروکاست هستی (برشی از هستی) را بهشکل دادهای و در قالب یک داده-شیء بازنمایی کرد و هنوز عناصر تصمیمناپذیر و یا از دست دادن دادهها در این میان اجتنابناپذیر باشند! با اینکه تقریب و تشابه خوبی دارد.
…
در نهایت با قبول ضعفها و امکان از دست رفتن اطلاعات، نمیتوان کل این شیء-داده را به صفر و یکهایی که بهشکل ترتیبی و در ابعادی متناهی قابلیت ذخیرهسازی هستند بازنگاری کرد!
یعنی بهشکل خلاصه آیا ماتریسی چندبعدی از صفر و یکها یک نگاشت نسبی از برشی مفروض از هستی را به دست نخواهد داد؟
با قبول این تقلیلگرایی دادهای، هنوز شدن و سیروریت، موجهسازی نشده است. چرا شیء-دادههایی سریمانند و یا در قالب یک بلاکچین (فقطخواندنی-فقطافزایشی) باید داشت؟ چه عنصری، رابطهای، نیرویی یا رانهای، این رانش و رنبش و پرش! را ایجاد میکند و توضیح میدهد!
آیا اصلاً چنین تغییری و شدنی و سیروریتی در هستی وجود دارد و یک حقیقت هستیشناختی است! یا نه این تنها برداشتی و درکی ناشی از وجود ناظر/ناظرانی است که خود اشیایی/ صفر و یکهایی از این ماتریس/ شیء-داده هستند و به یک موضوع معرفتشناختی و مرتبط با نسبی بودن و ضعف و موقعیت ناظر مرتبط میشوند.
ایدههای شدن
۱- برش بعدی نتیجهی همکنشی وضعیت برش قبلی است. یعنی همبستگی در وضعیت قبل حوادث (وضعیت) بعدی را نتیجه میدهد و نه رابطهی طولی و مستقیم بین برشهای زمانی.
۲- برای رفتن از قبل به بعد، باید پردازشگری و محملی برای شدن باشد. نظیر کامپیوتر که پردازشگری دارد. (اصول پردازشی در کامپیوتر بر اساس وجود جریان برق و انرژی در سختافزار، حرکت و شدن و محاسبات کامپیوتری را ممکن میکنند. مشابه چنین چیزی در هستی چیست!)
۳- آزادی عمل انرژی در هستی سیالیت و آزادی عمل حرکت و شدن است. نظیر جریان برق و الکتریسیته در مدارهای کامپیوتری.
۴- حرکتی مثل افتادن هست، که خود این جریان و انرژی حرکت مستتر در آن است. همانی که به مثابه آنتروپی میشناسیم. این انرژی در بستری از تنظیمات و مدارها و دستگاههای منطقی و اصول موضوعه به نقش و نگاری و طرحی و طرحوارهای میانجامند که ما به مثابه هستی و شدن درک میکنیم. (ایدهی جهان در سیاهچاله یا سفیدچالهای در حال شدن است از این میآید.)
۵- …
سؤال امروز من:
در بحث علیت و سیر تغییرات، چیستی/ چگونگی تغییرات چه / چقدر اهمیت دارد؟
آیا بحث و سؤال از علیت یعنی چگونگی تغییرات و مربوط به جنسی و شرایطی از اثر است که قاعدهای را نمایندگی کنند؟ مثال وضعیت شرطی در یک بیان منطقی؟
مراجع مطالعه شده:
- محمدصادق زاهدی، “آیا جهانهای ممکن واقعیت دارند؟،” پژوهشنامه فلسفه دین (نامه حکمت)، vol. ۳، no. ۵، pp. ۹–۳۹، ۱۳۸۴، [Online]. Available: https://sid.ir/paper/125712/fa
تعبیر دادهای/ کامپیوتری
- آبجکتهای / کلاسهای مصداق یافته instances
- داده/ متاداده/ کلاسها classes procedures functions (if loop and or =)
- خود صفر و یک / ترتیب و بیت و بایتها
- خود تحقق یافتن و جریان یافتن دادهای/ آغازشدن و تریگرها instantiation
ماهیت
- ویژگیها و نامها (در جفتی نام/ ارزش) در کلاسها
وجود
- صرف تحقق یافتن و ارزش پذیرفتن یک کلاس!
موجود
- نمونه و فردی (instance) که همهی ویژگیهای آن خالی null نیست!
اجزای یک سیستم کامپیوتر کامل:
سختافزار؛ مجموعهای از اجزای مکانیکی و الکتریکی از جمله پردازشگر اصلی، بورد اصلی، منبع تغذیهی الکتریکی، حافظه، پردازشگر گرافیکی، نمایشگر، بلندگو، دریافتکنندهی امواج صوتی و … که شرایط کافی برای اجرای نرمافزارها را فراهم میکنند.
نرمافزار؛ مجموعهای از دستورات که بر اساس روابط منطقی طرحی و نتیجهای را محقق میسازند. به فراخور سختافزار را فرا میخوانند.
برنامهنویسی شیءگرا (Object-Oriented Programming — OOP) یک روش و فرایند برنامهنویسی است که بر پایهی مفاهیمی اصلی مانند شیء، کلاس، ارثبری، پلیمورفیسم و کپسولهسازی ساخته شده است. در ادامه به تشریح مفاهیم اصلی برنامهنویسی شیءگرا میپردازیم:
۱. شیء (Object): شیء نمونهای از یک کلاس است که دارای ویژگیها (خصوصیات) و رفتارها (متدها) است. شیء یک بلوک ساختاری پایهای در برنامهنویسی شیءگرا است و به عنوان یک واحد مستقل عمل میکند. ۲. کلاس (Class): کلاس الگو یا قالبی است که برای ساختن اشیاء استفاده میشود. یک کلاس شامل تعریف متغیرها (ویژگیها) و توابع (متدها) است که برای یک شیء خاص لازم هستند. کلاسها اجازه میدهند تا از اصول اصلی برنامهنویسی شیءگرا مانند انتزاع، کپسولهسازی، ارثبری و پلیمورفیسم بهرهبرداری کنیم. ۳. ارثبری (Inheritance): ارثبری روشی است که در آن یک کلاس جدید میتواند ویژگیها و رفتارهای یک کلاس دیگر را به ارث ببرد. این امکان را به برنامهنویس میدهد که کد قبلی را استفاده مجدد کند و ساختار کد را بهبود بخشد. ۴. پلیمورفیسم (Polymorphism): پلیمورفیسم به این مفهوم اطلاق میشود که یک تابع یا متد بتواند با انواع مختلف داده کار کند یا اینکه اشیاء مختلف بتوانند به یک فراخوانی متد واکنش نشان دهند به طوری که خاصیت هر شیء به طور مستقل در نظر گرفته شود. پلیمورفیسم به برنامهنویس اجازه میدهد تا کدهایی را با قابلیت انعطافپذیری و قابلیت توسعهی بیشتری بنویسد. ۵. کپسولهسازی (Encapsulation): کپسولهسازی به فرایندی اطلاق میشود که در آن دادهها (ویژگیها) و توابع (متدها) که بر روی دادهها کار میکنند، در یک واحد به نام کلاس محصور میشوند. این مفهوم کمک میکند تا جزئیات داخلی یک کلاس را از دنیای بیرون مخفی نگه دارد و ساختار کد را ماژولار و قابل نگهداری کند. ۶. انتزاع (Abstraction): انتزاع فرایندی است که در آن سیستمهای پیچیده به قسمتهای کوچکتر و مدیریتپذیرتر شکسته میشوند. در برنامهنویسی شیءگرا، انتزاع با استفاده از کلاسها و رابطها (interfaces) به دست میآید. این مفهوم کمک میکند تا برنامهنویسان روی جزئیات کلی سیستم تمرکز کنند و از پیچیدگیهای زیرساختی فرار کنند.
این مفاهیم اصلی برنامهنویسی شیءگرا کمک میکنند تا برنامهنویسان سیستمهایی قویتر، منعطفتر و قابل توسعهتر بسازند. همچنین با استفاده از این مفاهیم، توسعهدهندگان میتوانند کدهایی تولید کنند که قابلیت خوانایی، نگهداری و تغییر را داشته باشند. بهطور خلاصه، مفاهیم اصلی برنامهنویسی شیءگرا در ادامه آمده است:
۱. ترکیبپذیری (Composition): ترکیبپذیری یک رویکردی است که در آن یک کلاس میتواند شامل نمونههایی از کلاسهای دیگر به عنوان ویژگیهای خود باشد. این رویکرد به ساختن ساختارهای پیچیدهتر با ترکیب کردن اجزای کوچکتر کمک میکند و اجازه میدهد که به جای استفاده از ارثبری، از ترکیبپذیری برای ایجاد روابط بین کلاسها استفاده شود. ۲. تکاملپذیری (Scalability): تکاملپذیری به قابلیت یک برنامه برای رشد و توسعه در زمان اشاره میکند. برنامهنویسی شیءگرا با ارائهی ساختارهای منعطف و قابل استفاده مجدد کمک میکند تا برنامههایی توسعهپذیرتر و قابل انطباق با نیازهای تغییرکننده ساخته شوند. ۳. رابطها (Interfaces): رابطها در برنامهنویسی شیءگرا، قراردادهایی هستند که تعیین میکنند چه متدهایی باید در یک کلاس پیادهسازی شوند. با استفاده از رابطها، میتوان قوانین و استانداردهایی را برای تعامل بین کلاسها و اجزای سیستم تعریف کرد. ۴. الگوهای طراحی (Design Patterns): الگوهای طراحی راهحلهای قابل استفاده مجدد برای مسائل رایج در طراحی نرمافزار هستند. این الگوها به عنوان راهکارهای ثابت و کاربردی برای مواجهه با مسائل معمول در طراحی و پیادهسازی سیستمهای شیءگرا به کار میروند. استفاده از الگوهای طراحی میتواند کمک کند به افزایش قابلیت استفاده مجدد کد، کاهش پیچیدگی سیستم و بهبود کیفیت کلی نرمافزار.
مثالهایی از الگوهای طراحی شیءگرا عبارتاند از:
- Singleton: این الگو اطمینان حاصل میکند که تنها یک نمونه از یک کلاس خاص در سیستم وجود داشته باشد و یک نقطه دسترسی جهانی برای آن فراهم کند.
- Factory: این الگو کمک میکند تا ایجاد نمونههای از کلاسها را به یک متد یا کلاس مرکزی واگذار کنیم، به جای اینکه مستقیماً از کلمهکلیدی new استفاده کنیم.
- Observer: این الگو به یک سیستم اجازه میدهد تا به تغییرات در وضعیت یک شیء بدون درگیر کردن شیء مشاهدهکننده (observer) به صورت مستقیم اطلاعرسانی کند.
- Strategy: این الگو به یک شیء اجازه میدهد که رفتار خود را در زمان اجرا تغییر دهد، با تعویض یک الگوریتم یا استراتژی با استراتژی دیگر.
در کل، برنامهنویسی شیءگرا با استفاده از مفاهیم و الگوهای مختلف، ساخت و توسعه نرمافزار را سادهتر و مؤثرتر میکند.
ریچموند هیل؛ انتاریو
مهدی سالم
۸ فوریه ۲۰۲۳