Forwarded from Linuxor ?
مقاله جدیدی که ادعا میکنه مدل های هوش مصنوعی برای پزشکی هیچی بارشون نیست و مفاهیم پزشکی رو کنکوری یاد گرفتن !
خیلی از سیستمهای معروف هوش مصنوعی حتی وقتی ورودی مهم مثل عکسها رو ازشون بگیری، بازم شانسی درست جواب میدن. یا با یه تغییر کوچیک توی پرامپت جوابشون عوض میشه. بعضی وقتا هم یه استدلال قشنگ و قانعکننده میسازن، ولی آخرش غلط درمیاد. اینا باگ نیست، بلکه نشون میده تستهای فعلی بیشتر به کلکهای امتحانی جایزه میدن تا به فهم واقعی پزشکی.
@Linuxor
خیلی از سیستمهای معروف هوش مصنوعی حتی وقتی ورودی مهم مثل عکسها رو ازشون بگیری، بازم شانسی درست جواب میدن. یا با یه تغییر کوچیک توی پرامپت جوابشون عوض میشه. بعضی وقتا هم یه استدلال قشنگ و قانعکننده میسازن، ولی آخرش غلط درمیاد. اینا باگ نیست، بلکه نشون میده تستهای فعلی بیشتر به کلکهای امتحانی جایزه میدن تا به فهم واقعی پزشکی.
@Linuxor
Forwarded from Golden Code (@lix)
یکی از قابلیتهای جذاب کش در لاراول، Cache Tags هست.
با Tag میتونی چند داده کش شده رو زیر یک تگ مشخص گروهبندی کنی. اینطوری مدیریت اونا (پاککردن یا بروزرسانی) خیلی راحتتر میشه.
📌 چرا به درد میخوره؟
فرض کن اپلیکیشن چند تیمی (multi-tenant) داری. هر تیم تنظیمات خودشو داره که توی کش ذخیره میکنی.
حالا اگه بخوای همه کشهای مربوط به یک تیم خاص رو پاک کنی، با Tag خیلی ساده میشه:
⚠️ یه نکته مهم
این Cache Tags فقط روی درایورهای Redis و Memcached پشتیبانی میشن.
روی file، database یا dynamodb کار نمیکنه.
خلاصه که:
با استفاده از Tag میتونی کش های مرتبط رو یکجا مدیریتشون کنی، بدون نیاز به دونستن کلیدهای مختلف.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1971180406717210806?t=l7I87aVOAwuBep_DjhW18A&s=35
با Tag میتونی چند داده کش شده رو زیر یک تگ مشخص گروهبندی کنی. اینطوری مدیریت اونا (پاککردن یا بروزرسانی) خیلی راحتتر میشه.
📌 چرا به درد میخوره؟
فرض کن اپلیکیشن چند تیمی (multi-tenant) داری. هر تیم تنظیمات خودشو داره که توی کش ذخیره میکنی.
حالا اگه بخوای همه کشهای مربوط به یک تیم خاص رو پاک کنی، با Tag خیلی ساده میشه:
// ذخیره دادهها با تگ team-1
Cache::tags(['team-1'])->put('settings', ['lang' => 'fa', 'timezone' => 'Asia/Tehran'], 3600);
// ذخیره داده دیگه با همون تگ
Cache::tags(['team-1'])->put('members', ['Ali', 'Sara'], 3600);
// پاک کردن همه کشهای team-1
Cache::tags(['team-1'])->flush();
⚠️ یه نکته مهم
این Cache Tags فقط روی درایورهای Redis و Memcached پشتیبانی میشن.
روی file، database یا dynamodb کار نمیکنه.
خلاصه که:
با استفاده از Tag میتونی کش های مرتبط رو یکجا مدیریتشون کنی، بدون نیاز به دونستن کلیدهای مختلف.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1971180406717210806?t=l7I87aVOAwuBep_DjhW18A&s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
Laravel Tip 🚀
Laravel Cache system provides a way to work with tags, providing an efficient way to group different values under the same tag.
For example, you can create a cache tag for each team that uses your application and if a setting for that team…
Laravel Cache system provides a way to work with tags, providing an efficient way to group different values under the same tag.
For example, you can create a cache tag for each team that uses your application and if a setting for that team…
Forwarded from IRCF | اینترنت آزاد برای همه
۲۵ سپتامبر ۲۰۲۵ بهعنوان روز جهانی اقدام برای ویپیان نامگذاری شده بود.
در این روز، گروه بینالمللی Fight for the Future با همراهی شرکتهای مطرح ویپیان از جمله NordVPN، Surfshark، ExpressVPN، Windscribe و Amnezia نسبت به تهدیدهای ناشی از ممنوعیت ویپیانها و محدودسازی آزادی اینترنت هشدار دادند.
به گفته لیا هولند، مدیر کمپین اینگروه، "ویپیانها ابزار ضروری برای حفظ حریم خصوصی و آزادی اینترنت هستند و محدودسازی اونها میتونه زندگی میلیونها کاربر رو تحت تأثیر قرار بده".
این هشدار در شرایطی مطرح شده که پس از اجرای قانون ایمنی آنلاین در بریتانیا و تصویب قوانین مشابه در ۲۵ ایالت آمریکا، بحث ممنوعیت کامل ویپیان در کشورهایی مانند انگلیس و ایالت میشیگان جدیتر شده است.
در ایران نیز به دلیل سرکوب شدید اینترنت و فیلترینگ گسترده، محدودیتهای فراوانی برای دسترسی آزاد به اطلاعات وضع شده و بخش قابل توجهی از مردم برای دسترسی به اخبار، سایتها، خدمات اینترنتی، پیامرسانهای خارجی و ... از VPN استفاده میکنند.
🔍 ircf.space
@ircfspace
در این روز، گروه بینالمللی Fight for the Future با همراهی شرکتهای مطرح ویپیان از جمله NordVPN، Surfshark، ExpressVPN، Windscribe و Amnezia نسبت به تهدیدهای ناشی از ممنوعیت ویپیانها و محدودسازی آزادی اینترنت هشدار دادند.
به گفته لیا هولند، مدیر کمپین اینگروه، "ویپیانها ابزار ضروری برای حفظ حریم خصوصی و آزادی اینترنت هستند و محدودسازی اونها میتونه زندگی میلیونها کاربر رو تحت تأثیر قرار بده".
این هشدار در شرایطی مطرح شده که پس از اجرای قانون ایمنی آنلاین در بریتانیا و تصویب قوانین مشابه در ۲۵ ایالت آمریکا، بحث ممنوعیت کامل ویپیان در کشورهایی مانند انگلیس و ایالت میشیگان جدیتر شده است.
در ایران نیز به دلیل سرکوب شدید اینترنت و فیلترینگ گسترده، محدودیتهای فراوانی برای دسترسی آزاد به اطلاعات وضع شده و بخش قابل توجهی از مردم برای دسترسی به اخبار، سایتها، خدمات اینترنتی، پیامرسانهای خارجی و ... از VPN استفاده میکنند.
🔍 ircf.space
@ircfspace
Forwarded from Gopher Academy
🎙️ عنوان پادکست:
Go gets audited, and Ian Lance Taylor talks about 19 years on the Go team
خلاصه پادکست:
**
در این مطلب، از ممیزی امنیتی زیرساخت رمزنگاری Go و گفتوگوی مفصل با Ian Lance Taylor درباره ۱۹ سال حضورش در تیم Go خبر داده میشود. ممیزی به رهبری Roland Shoemaker و Filippo Valsorda انجام شده و همراه با بررسیهای عملی درباره FIPS در Episode 89 با Alex Scheel، بر اهمیت سختگیری امنیتی و الزامات انطباق تأکید دارد. در حوزه طراحی زبان، پیشنهاد x/exp/xiter برای افزودن iterator adapters رد شد تا بر اولویت سادگی و پایداری در اکوسیستم Go تأکید شود....
Go gets audited, and Ian Lance Taylor talks about 19 years on the Go team
خلاصه پادکست:
**
در این مطلب، از ممیزی امنیتی زیرساخت رمزنگاری Go و گفتوگوی مفصل با Ian Lance Taylor درباره ۱۹ سال حضورش در تیم Go خبر داده میشود. ممیزی به رهبری Roland Shoemaker و Filippo Valsorda انجام شده و همراه با بررسیهای عملی درباره FIPS در Episode 89 با Alex Scheel، بر اهمیت سختگیری امنیتی و الزامات انطباق تأکید دارد. در حوزه طراحی زبان، پیشنهاد x/exp/xiter برای افزودن iterator adapters رد شد تا بر اولویت سادگی و پایداری در اکوسیستم Go تأکید شود....
Forwarded from Go Casts 🚀
اگه دارید یه پروژه گولنگی رو سنگین ریفکتور میکنید پیشنهاد میکنم از
// Deprecated
خیلی زود استفاده کنید
قشنگی قضیه اینه که lsp گولنگ وقتی چنین کامنتی روی تابع یا type یا field خاصی قرار میگیره متوجه میشه و شما حین ریفکتور خیلی راحت قسمت هایی که deprecate شده رو میتونید از کد حذف کنید و یا صرفا جهت backwardCompatibility نگهشون دارید.
خیلی پیچیدگی ریفکتور رو کم میکنه مخصوصا اگه تعداد تغییرات زیاد باشه.
همچنین اگه به تیم ها و کلاینت هاتون sdk ارائه دادید میتونید برای backward compatibility این فیلدهارو حفظ کنید ولی اون deprecated annotation بهشون هشدار میده که نباید دیگه ازش استفاده کنن.
ضمنا بهتره تو توضیحات روش جایگیزین (اگه وجود داره رو) اشاره کنید که کم کم کلاینت های sdk هم تشویق بشن از روش جایگزین استفاده کنن.
توضیحات بیشتر رو اینجا میتونید بخونید
https://go.dev/wiki/Deprecated
@gocasts
// Deprecated
خیلی زود استفاده کنید
قشنگی قضیه اینه که lsp گولنگ وقتی چنین کامنتی روی تابع یا type یا field خاصی قرار میگیره متوجه میشه و شما حین ریفکتور خیلی راحت قسمت هایی که deprecate شده رو میتونید از کد حذف کنید و یا صرفا جهت backwardCompatibility نگهشون دارید.
خیلی پیچیدگی ریفکتور رو کم میکنه مخصوصا اگه تعداد تغییرات زیاد باشه.
همچنین اگه به تیم ها و کلاینت هاتون sdk ارائه دادید میتونید برای backward compatibility این فیلدهارو حفظ کنید ولی اون deprecated annotation بهشون هشدار میده که نباید دیگه ازش استفاده کنن.
ضمنا بهتره تو توضیحات روش جایگیزین (اگه وجود داره رو) اشاره کنید که کم کم کلاینت های sdk هم تشویق بشن از روش جایگزین استفاده کنن.
توضیحات بیشتر رو اینجا میتونید بخونید
https://go.dev/wiki/Deprecated
@gocasts
go.dev
Go Wiki: Deprecated - The Go Programming Language
Forwarded from فانی لرن | برنامه نویسی ، وردپرس ، طراحی سایت (OMid)
This media is not supported in your browser
VIEW IN TELEGRAM
🍪 اکستنشن ذخیره و تغیر نشست سایت ها با قابلیت ویرایش کوکی برای کروم منتشر شد.
😃چند کاربرد جالب این افزونه :
#کروم #مرورگر #اکستنشن
😃چند کاربرد جالب این افزونه :
✅ رفع محدودیت لاگین در چت بات ها📥لینک نصب از کروم استور: [VIEW]
✅ رفع محدودیت لاگین های زیاد در تلگرام وب
✅️ لاگین سریع به اکانت های مختلف سایت ها
✅ مشاهده و ویرایش کوکی ها
✅ دانلود و ارسال نشست به دستگاه های دیگر
#کروم #مرورگر #اکستنشن
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
اینقدر هر روز مدلهای خوب میاد بیرون که گاهی انتخاب سخت میشه. IBM یک مدل فوق سبک ولی فوق العاده با کیفیت از مدلهای vision-language model (VLM) به اسم Granite-Docling-258M داده بیرون. با اینکه فقط ۲۵۸ میلیون پارامتر داره ولی عالیه در OCR، استخراج فرمولهای ریاضی، کد وجدول از داکیومنت. همچین خیلی دقیق هست در تبدیل pdf به HTML با حفظ ساختار اصلی داکیومنت.
روی سیستم لوکال راحت اجرا میشه. و کلی کار جالب میتونید باهاش انجام بدید برای انواع اپلیکیشنها. برای اطلاعات کامل بلاگشون را بخونید که کلی خوندنیه. مدل هم روی HuggingFace هست که میدونید دانلود کنید و استفاده کنید.
https://www.ibm.com/new/announcements/granite-docling-end-to-end-document-conversion
@DevTwitter | <Mehdi Allahyari/>
روی سیستم لوکال راحت اجرا میشه. و کلی کار جالب میتونید باهاش انجام بدید برای انواع اپلیکیشنها. برای اطلاعات کامل بلاگشون را بخونید که کلی خوندنیه. مدل هم روی HuggingFace هست که میدونید دانلود کنید و استفاده کنید.
https://www.ibm.com/new/announcements/granite-docling-end-to-end-document-conversion
@DevTwitter | <Mehdi Allahyari/>
Forwarded from جامعهٔ فارسی زبان کیدیای
Forwarded from محتوای آزاد سهراب (Sohrab)
Forwarded from Gopher Academy
🎙️ عنوان پادکست:
👕 Clothe your naked gophers and returns, with this one weird episode THEY don't want you to know about!
خلاصه پادکست:
این هفته در دنیای Go، دو نسخه نگهداری Go 1.25.1 و Go 1.24.7 منتشر شدند که باگها و بهبودهای پایداری (و احتمالا امنیتی) را در کامپایلر، کتابخانه استاندارد و ابزارها ارائه میکنند؛ ارتقا برای محیطهای تولیدی توصیه میشود. ویدیوهای GopherCon Europe: Berlin 2025 هم در دسترس است و موضوعاتی از طراحی زبان تا سیستمهای توزیعشده و بهینهسازی عملکرد را پوشش میدهد....
👕 Clothe your naked gophers and returns, with this one weird episode THEY don't want you to know about!
خلاصه پادکست:
این هفته در دنیای Go، دو نسخه نگهداری Go 1.25.1 و Go 1.24.7 منتشر شدند که باگها و بهبودهای پایداری (و احتمالا امنیتی) را در کامپایلر، کتابخانه استاندارد و ابزارها ارائه میکنند؛ ارتقا برای محیطهای تولیدی توصیه میشود. ویدیوهای GopherCon Europe: Berlin 2025 هم در دسترس است و موضوعاتی از طراحی زبان تا سیستمهای توزیعشده و بهینهسازی عملکرد را پوشش میدهد....
Forwarded from ASafaeirad
Draft for CSS Environment Variables
https://www.w3.org/news/2025/first-public-working-draft-css-environment-variables-module-level-1
#css #env #news
https://www.w3.org/news/2025/first-public-working-draft-css-environment-variables-module-level-1
#css #env #news
W3C
First Public Working Draft: CSS Environment Variables Module Level 1
This specification defines the concept of environment variables and the env() function, which work similarly to custom properties and the var() function, but are defined globally for a document.
Forwarded from Singular Thinker
ELLIS PhD Program: Call for Applications 2025 and Info Session
The ELLIS PhD Program is now open for applications for 2026! The program offers joint supervision with advisors in different European countries, including at least six months of exchange, and connects students with both academic and industry mentors. Interested candidates should apply online through the ELLIS application portal by October 31, 2025, 23:59 AoE.
Virtual info session:
On October 1st, there will be an information session for prospective PhD students providing an overview of the ELLIS PhD program, the call for applications, and the expected application material to provide.
📍 Virtual
📅 October 1, 2025
🕓 16:00 CET
🔗 Register to join info session
#phd_position
@SingularThinker
The ELLIS PhD Program is now open for applications for 2026! The program offers joint supervision with advisors in different European countries, including at least six months of exchange, and connects students with both academic and industry mentors. Interested candidates should apply online through the ELLIS application portal by October 31, 2025, 23:59 AoE.
Virtual info session:
On October 1st, there will be an information session for prospective PhD students providing an overview of the ELLIS PhD program, the call for applications, and the expected application material to provide.
📍 Virtual
📅 October 1, 2025
🕓 16:00 CET
🔗 Register to join info session
#phd_position
@SingularThinker
Forwarded from a pessimistic researcher (Kc)
Singular Thinker
یه سری از بچه ها پرسیدن ELLIS چیه؟ چون سرچ کنی تو گوگل درست سرمون نمیاره. که اینه قضیه اش ELLIS - the European Laboratory for Learning and Intelligent Systems - is a pan-European AI network of excellence which focuses on fundamental science, technical innovation…
اگر ELLIS نمیدونی چیه اینجا رو بخون
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 6 new trending repositories:
1. trendFinder by ericciarla
📝 Stay on top of trending topics on social media and the web with AI
💻 TypeScript | ⭐ 3,517 | 🌟 Today: 72
🔗 Link
2. netdata by netdata
📝 The fastest path to AI-powered full stack observability, even for lean teams.
💻 C | ⭐ 76,047 | 🌟 Today: 27
🔗 Link
3. jellyfin by jellyfin
📝 The Free Software Media System - Server Backend & API
💻 C# | ⭐ 43,669 | 🌟 Today: 39
🔗 Link
4. gemini-cli by google-gemini
📝 An open-source AI agent that brings the power of Gemini directly into your terminal.
💻 TypeScript | ⭐ 76,735 | 🌟 Today: 189
🔗 Link
5. register by is-a-dev
📝 Grab your own sweet-looking '.is-a.dev' subdomain.
💻 JavaScript | ⭐ 7,678 | 🌟 Today: 225
🔗 Link
6. cookbook by google-gemini
📝 Examples and guides for using the Gemini API
💻 Jupyter Notebook | ⭐ 14,778 | 🌟 Today: 22
🔗 Link
🔘 @github_trending_daily
Found 6 new trending repositories:
1. trendFinder by ericciarla
📝 Stay on top of trending topics on social media and the web with AI
💻 TypeScript | ⭐ 3,517 | 🌟 Today: 72
🔗 Link
2. netdata by netdata
📝 The fastest path to AI-powered full stack observability, even for lean teams.
💻 C | ⭐ 76,047 | 🌟 Today: 27
🔗 Link
3. jellyfin by jellyfin
📝 The Free Software Media System - Server Backend & API
💻 C# | ⭐ 43,669 | 🌟 Today: 39
🔗 Link
4. gemini-cli by google-gemini
📝 An open-source AI agent that brings the power of Gemini directly into your terminal.
💻 TypeScript | ⭐ 76,735 | 🌟 Today: 189
🔗 Link
5. register by is-a-dev
📝 Grab your own sweet-looking '.is-a.dev' subdomain.
💻 JavaScript | ⭐ 7,678 | 🌟 Today: 225
🔗 Link
6. cookbook by google-gemini
📝 Examples and guides for using the Gemini API
💻 Jupyter Notebook | ⭐ 14,778 | 🌟 Today: 22
🔗 Link
🔘 @github_trending_daily
Forwarded from Laravel News
Livewire wire:click.prevent for Form Handling https://laravel-news.com/wire-click-prevent
Laravel News
Livewire wire:click.prevent for Form Handling - Laravel News
The wire:click.prevent directive prevents default browser behavior while executing Livewire component methods, enabling interactive form handling and user interface updates without page reloads or custom JavaScript.
Forwarded from a pessimistic researcher (Kc)
خلاصه از اون مقالههایی هستش که به نظرم هر دانشجوی کامپیوتری باید بخونه و این هفته میخوایم توی group reading مون مفصل در موردش صحبت کنیم.
Telegram
Classic Papers in Programming Languages and Logic reading group
مرجع دوره :
https://www.cs.cmu.edu/~crary/819-f09/
منابع دوره :
https://github.com/yasaminashoori/CS_ReadingClub
https://www.cs.cmu.edu/~crary/819-f09/
منابع دوره :
https://github.com/yasaminashoori/CS_ReadingClub
Forwarded from a pessimistic researcher (Kc)
این هفته جلسهی دوم reading group رو داشتیم که در مورد untyped lambda calculus صحبت کردیم و قوانین reduction و conversion و فرم نرمالشون و تئورمهای Curch-Rosser رو مرور کردیم و کلی هم کیف کردیم. آقا دروغ چرا روز اولی که امیر این گروه رو زد و تصمیم گرفت که این حرکت رو پوش کنه، من چشمم آب نمیخورد که بعد جلسهی اول کسی تمایل داشته باشه که ادامه بدیم، ولی از اون موقع ۴ جلسه گذشته و کلی حس و انرژی خوب بین دوستان وجود داره. پیرو جلسات اول که روی Hoare Logic و GCL بود، امیر و یاسمین دو پروژهی موازی رو شروع کردند. امیر داره روی پیادهسازی زبان GCL کار میکنه، به طوری که هم یک نسخهی Executable ازش داشته باشه و هم با استفاده از operational semantics این زبان، فضای حالش رو محاسبه کنه و بتونه verification هم روش انجام بده. این پروژه روی این ریپو قرار داره :
https://github.com/amirkhaki/gcl
در کنار این پروژه، یاسمین داره روی پیادهسازی زبان WHILE کار میکنه و براش یک Verifier مینویسه که بتونه با استفاده از Axiom ها و rule های Hoare Logic درستی برنامههای WHILE رو اثبات کنه. لینک این پروژه هم روی این ریپو قرار داره :
https://github.com/yasaminashoori/HoareWhileVerifier
هفته دیگه قراره بریم سراغ این مقاله :
The Next 700 Programming Languages
به نوشتهی آقای Peter John Landin که در سال ۱۹۶۶ در مجلهی Communications of the ACM چاپ شد. چرا این مقاله انقدر مهمه؟ همونطور که توی بخش تاریخچهی Lambda Calculus گفتم و توی این پست نوشتم، لامبدا کلکولس زمانی که ابداع شد توسط آقای Church، هدفش پروگرامینگ نبود، هدفش فرمال کردن مفهوم محاسبه و محاسبهپذیری (computablity) بود. بیشتر اون زمان دنبال این بودن که بفهمن جه مسائلی محاسبه پذیر نیستند، و این جریان بعد از ارائهی اصول ناتمامیت گودل آغاز شد. موقعی که اثبات شد این مدل محاسبه universal هستش، خیلیا اومدن و computablity theory رو بر پایهی حاسب لامبدا جلو بردن. توی جلسهی دیروز اشاره کردم به یک textbook خیلی معروف در این قضیه که اینه :
Theory of Recursive Functions and Effective Computability
نوشتهی آقای Hartley Rogers. این کتاب یکی از زیباترین کتابهایی هستش که میتونید توی زندگیتون بخونید. یه کتاب معروف دیگه هم اینه:
Computability: An Introduction to Recursive Function Theory
نوشتهی آقای Nigel Cutland. منتهی کتابهای امروزی Computability Theory همگی بر اساس ماشین تورینگ نوشته میشن و دیگه کسی خیلی با لامبدا کلکولس کار رو جلو نمیبره. اما یکی از عواملی که باعث شد حساب لامبدا هنوز که هنوز توی بازی باقی بمونه و بسیار بهش توجه بشه شاید همین مقالهای هستش که قراره این هفته بخونیم. توی این مقاله آقای Landin برای اولین بار متوجه شد که حساب لامبدا میتونه به عنوان یک مدل برنامهنویسی ازش استفاده بشه و پایهگزار Functional Programming و Denotational Semantics شدند. حالا چی شد که ایشون اصلا به فکر این کار افتاد. اون زمان یعنی دهه ۶۰ میلادی چیزی حدود ۱۷۰۰ زبان برنامهنویسی وجود داشت. ممکنه بپرسید به چه دلیل؟ دلیلش این بود که توسعه و طراحی یک زبان برنامهنویسی بسیار adhoc بود و هیچ حساب کتابی نداشت. برای همین گسترش زبانها برای ساپورت کردن یه کانسپت جدید شدنی نبود و اگر نیاز به feature جدیدی بود، یک زبان جدید براش میساختن :) مثلا فرض کن تو یه زبان ساختی برای نوشتن برنامهی یک ماشین حساب، حالا من میگم میخوام از این زبان برای نوشتن برنامهی یک ساعت دیجیتال استفاده کنم. ولی چون زبان تو باید یک سری primitive جدید میداشت برای این کار، راحتتر بود که من برم یه زبان مخصوص توسعهی ساعتهای دیجیتال طراحی کنم تا اینکه بیام زبان تو رو گسترش بدم. به عبارتی برای ۷۰۰ کاربرد مختلف اون زمان فقط ۱۷۰۰ زبان ساخته شده بود و این اصلا چیز خوبی نبود.
ایشون اومد و برای اولین بار توضیح داد که برای نوشتن یک زبان باید مرز syntax رو از semantics جدا کرد و روی مکانیزمهای abstraction تاکید کردند. با این کار یک سری اوصول unified برای طراحی زبان برنامهنویسی توسعه دادند و بر اساس همون اصول هم یک زبان برنامه نویسی به اسم ISWIM ("If You See What I Mean") ساختند که تقریبا اولین زبان functional مبتنی بر حساب لامبدا بود و زبانهایی مثل Haskell و ML با الهام از این زبان ساخته شدند. ایشون با ارائهی زبان ISWIM توی این مقاله نشون دادن که چطور میشه یک زبان پایه رو طوری طراحی کرد که به راحتی قابل گسترش باشه برای اینکه بخواد feature های جدیدی رو ساپورت کنه و این کار تنها با تغییر عملیاتهای primitives زبان صورت میگرفت.
https://github.com/amirkhaki/gcl
در کنار این پروژه، یاسمین داره روی پیادهسازی زبان WHILE کار میکنه و براش یک Verifier مینویسه که بتونه با استفاده از Axiom ها و rule های Hoare Logic درستی برنامههای WHILE رو اثبات کنه. لینک این پروژه هم روی این ریپو قرار داره :
https://github.com/yasaminashoori/HoareWhileVerifier
هفته دیگه قراره بریم سراغ این مقاله :
The Next 700 Programming Languages
به نوشتهی آقای Peter John Landin که در سال ۱۹۶۶ در مجلهی Communications of the ACM چاپ شد. چرا این مقاله انقدر مهمه؟ همونطور که توی بخش تاریخچهی Lambda Calculus گفتم و توی این پست نوشتم، لامبدا کلکولس زمانی که ابداع شد توسط آقای Church، هدفش پروگرامینگ نبود، هدفش فرمال کردن مفهوم محاسبه و محاسبهپذیری (computablity) بود. بیشتر اون زمان دنبال این بودن که بفهمن جه مسائلی محاسبه پذیر نیستند، و این جریان بعد از ارائهی اصول ناتمامیت گودل آغاز شد. موقعی که اثبات شد این مدل محاسبه universal هستش، خیلیا اومدن و computablity theory رو بر پایهی حاسب لامبدا جلو بردن. توی جلسهی دیروز اشاره کردم به یک textbook خیلی معروف در این قضیه که اینه :
Theory of Recursive Functions and Effective Computability
نوشتهی آقای Hartley Rogers. این کتاب یکی از زیباترین کتابهایی هستش که میتونید توی زندگیتون بخونید. یه کتاب معروف دیگه هم اینه:
Computability: An Introduction to Recursive Function Theory
نوشتهی آقای Nigel Cutland. منتهی کتابهای امروزی Computability Theory همگی بر اساس ماشین تورینگ نوشته میشن و دیگه کسی خیلی با لامبدا کلکولس کار رو جلو نمیبره. اما یکی از عواملی که باعث شد حساب لامبدا هنوز که هنوز توی بازی باقی بمونه و بسیار بهش توجه بشه شاید همین مقالهای هستش که قراره این هفته بخونیم. توی این مقاله آقای Landin برای اولین بار متوجه شد که حساب لامبدا میتونه به عنوان یک مدل برنامهنویسی ازش استفاده بشه و پایهگزار Functional Programming و Denotational Semantics شدند. حالا چی شد که ایشون اصلا به فکر این کار افتاد. اون زمان یعنی دهه ۶۰ میلادی چیزی حدود ۱۷۰۰ زبان برنامهنویسی وجود داشت. ممکنه بپرسید به چه دلیل؟ دلیلش این بود که توسعه و طراحی یک زبان برنامهنویسی بسیار adhoc بود و هیچ حساب کتابی نداشت. برای همین گسترش زبانها برای ساپورت کردن یه کانسپت جدید شدنی نبود و اگر نیاز به feature جدیدی بود، یک زبان جدید براش میساختن :) مثلا فرض کن تو یه زبان ساختی برای نوشتن برنامهی یک ماشین حساب، حالا من میگم میخوام از این زبان برای نوشتن برنامهی یک ساعت دیجیتال استفاده کنم. ولی چون زبان تو باید یک سری primitive جدید میداشت برای این کار، راحتتر بود که من برم یه زبان مخصوص توسعهی ساعتهای دیجیتال طراحی کنم تا اینکه بیام زبان تو رو گسترش بدم. به عبارتی برای ۷۰۰ کاربرد مختلف اون زمان فقط ۱۷۰۰ زبان ساخته شده بود و این اصلا چیز خوبی نبود.
ایشون اومد و برای اولین بار توضیح داد که برای نوشتن یک زبان باید مرز syntax رو از semantics جدا کرد و روی مکانیزمهای abstraction تاکید کردند. با این کار یک سری اوصول unified برای طراحی زبان برنامهنویسی توسعه دادند و بر اساس همون اصول هم یک زبان برنامه نویسی به اسم ISWIM ("If You See What I Mean") ساختند که تقریبا اولین زبان functional مبتنی بر حساب لامبدا بود و زبانهایی مثل Haskell و ML با الهام از این زبان ساخته شدند. ایشون با ارائهی زبان ISWIM توی این مقاله نشون دادن که چطور میشه یک زبان پایه رو طوری طراحی کرد که به راحتی قابل گسترش باشه برای اینکه بخواد feature های جدیدی رو ساپورت کنه و این کار تنها با تغییر عملیاتهای primitives زبان صورت میگرفت.
Forwarded from Unlocking Software Verification
Compositional Symbolic Execution for the Next 700 Memory Models
https://arxiv.org/pdf/2508.15576
#paper #Gardner #OOPSLA #2025
https://arxiv.org/pdf/2508.15576
#paper #Gardner #OOPSLA #2025
Forwarded from a pessimistic researcher (Kc)
این مقاله رو چند وقت پیش توی کانال انباریم گذاشته بودم که کار جدید خانم Gardner توی OOPSLA امساله. اسم مقاله رو از روی مقالهی آقای Landin اسکی رفته :))
Forwarded from a pessimistic researcher (Kc)
اینم بگم،
اگر بکگراند یا پیش زمینهی لازم رو ندارید هم مسئلهای نیست ما توی ریپوی گروهمون برای هر هفته کلی کتاب و منبع قرار دادیم که همه چیز رو از پایه پوشش دادند و میتونید با مراجعه به اونا پایهای تر شروع کنید. فیلم جلسات هم ضبط شده و توی گروه هست. دو جلسهی اول راجع به Hoare Logic و GCL بود، جلسهی سوم یه جلسهی تکمیلی روی stateless model checking بود که خارج از برنامهمون بود، جلسهی چهارم هم روی Lambda Calculus و تئوری Church-Rosser بود.
اگر بکگراند یا پیش زمینهی لازم رو ندارید هم مسئلهای نیست ما توی ریپوی گروهمون برای هر هفته کلی کتاب و منبع قرار دادیم که همه چیز رو از پایه پوشش دادند و میتونید با مراجعه به اونا پایهای تر شروع کنید. فیلم جلسات هم ضبط شده و توی گروه هست. دو جلسهی اول راجع به Hoare Logic و GCL بود، جلسهی سوم یه جلسهی تکمیلی روی stateless model checking بود که خارج از برنامهمون بود، جلسهی چهارم هم روی Lambda Calculus و تئوری Church-Rosser بود.