Neler yeni
İslami Forum, Dini Forum, islami site, islami sohbet, radyo, islami bilgiler

İslam-tr.org'a hoş geldiniz! Hemen üye olun ve kendi konularınızı, düşüncelerinizi paylaşarak bu platforma katılın. Oturum açtıktan sonra, İslam dini, tarih ve güncel konularla ilgili paylaşımlarda bulunabilirsiniz.

C Dilinde Yardım Edecek Abi Var mı?

SalihBeratt Çevrimiçi

SalihBeratt

İyi Bilinen Üye
İslam-TR Üyesi
السلام عليكم

C dilini öğrenmek istiyorum. İnternetten ChatGPT ve Youtube gibi yerlerden öğrenmek zorluyor.

Temel konuları vs. öğrenmek kolay oluyor ama iş biraz ileri düzeye gelince sıkışıyorum ve internetteki bu kaynaklar yetersiz geliyor. C dilinde sıkıştığım zaman bana yardım edebilecek bir abi var mı? Buraya yazsam sorunu ve uzman abi de çözümü buradan cevap vererek anlatsa?..

İnternette C dili hakkında türkçe forum aradım ama aktif bir forum bulamadım.

İngilizce yer var stackoverfow lakin orası ingilizce olduğu için daha zor anlıyorum. Çünkü ingilizcem olsa da ana dilim türkçe. Bu yüzden türkçe okuyarak öğrenmek daha kolay oluyor. Hem de kâfir yâhud müşrik yahud ehli kitaplarla muhatap olmamış olurum. Müslüman bir abi öğretmiş olur.


Eğer öğretecek kimse çıkmazsa stackoverflow üzerinden ilerlemeyi düşünüyorum maalesef : (


Niçin Python, Java, C#, C++ değilde C istiyorsun diye merak eden abiler için cevabım C'nin aşırı hızlı bir yazılım lisânı olması ve doğrudan donanıma erişmesi. Doğrudan donanıma erişen bir dille bilgisayar üzerinde daha hür olursun. Hız ile de gereksiz kaynak kullanımı ve yavaşlıklardan kurtulur insan (diğer python, java gibi dillere kıyasla. ASM de uzman biri C'den daha hızlı bir kod yazabilir.)
 
Son düzenleme:
A Çevrimdışı

azizakca

Üye
İslam-TR Üyesi
Can ben btk akademi e-devlet üzerinde öğreniyorum gayet sade anlatımlı eğitimler var eğitim sonrası sertifikanın olur
 
labirent Çevrimdışı

labirent

İyi Bilinen Üye
Moderatör
Stack Overflow'da C dili ya da diğer diller ile ilgili kaynak dokümanlar yayınlanmaz. Yeterli Türkçe içeriğin var olup olmadığı konusunda bir araştırma yapmadım, ama Türkiye'de "C ve Sistem Programcıları Derneği" (CSD) olması şaşırtıcı. Yayınladıkları Türkçe içerikler mutlaka vardır. CSD'nin sitesindeki yetkin kişileri bulup konu ile ilgili paylaşımlarını takip edebilirsiniz. Çeviri araçları da göz ardı edilmemeli.

Video eğitimlerle temel konuları öğrendiyseniz, artık o dil ile basitten ileri seviyeye doğru çeşitli uygulamalar yapmaya başlayın. Örneğin, bir veritabanı oluşturduktan sonra TDK sözlüğüne benzeyen basit bir sözlük uygulaması yapabilirsiniz. YouTube gibi platformlardan video, mp3 veya altyazı indirmeye yarayacak araçlar yaparak da kendinizi geliştirebilirsiniz. Sürekli doküman okumak ya da video eğitim izlemek, ilerlemenizi yavaşlatabilir. Teoriden pratiğe geçmek önemli.

İyi dil-kötü dil diye bir ayrım var mı?
C dili, saydığınız diğer dillerden yaş olarak daha büyüktür. "Eski olan en iyisidir" fikri ise bence anlamsız. Dillerin kullanım alanlarına göre avantajları ve dezavantajları olur. Bugün "assembly" (ASM) ile kod yazıp uygulama geliştiren birini görmedim. Assembly bilmek ile onu yazmak farklı şeyler. İşin temeline kadar dönecek olursak, binary code (0 ve 1) yazmak daha hızlı ve avantajlı olmalı deriz. Ama durum öyle değil.

Hangi dili öğrenmeliyim?
Gelir kaynağı sağlamak için dil öğrenecekseniz, bulunduğunuz ülkede veya globalde hangi dillerde iş imkânı daha fazla, bunu bilmek size yol gösterebilir. Bu sonuçlara bakarak popüler olan dil iyidir, diğerleri kötüdür gibi bir çıkarım yapılmamalı.
 
SalihBeratt Çevrimiçi

SalihBeratt

İyi Bilinen Üye
İslam-TR Üyesi
Stack Overflow'da C dili ya da diğer diller ile ilgili kaynak dokümanlar yayınlanmaz. Yeterli Türkçe içeriğin var olup olmadığı konusunda bir araştırma yapmadım, ama Türkiye'de "C ve Sistem Programcıları Derneği" (CSD) olması şaşırtıcı. Yayınladıkları Türkçe içerikler mutlaka vardır. CSD'nin sitesindeki yetkin kişileri bulup konu ile ilgili paylaşımlarını takip edebilirsiniz. Çeviri araçları da göz ardı edilmemeli.
Akhi bende bayağı şaşırdım çok güzel bir kaynak teşekkür ederim

Video eğitimlerle temel konuları öğrendiyseniz, artık o dil ile basitten ileri seviyeye doğru çeşitli uygulamalar yapmaya başlayın. Örneğin, bir veritabanı oluşturduktan sonra TDK sözlüğüne benzeyen basit bir sözlük uygulaması yapabilirsiniz. YouTube gibi platformlardan video, mp3 veya altyazı indirmeye yarayacak araçlar yaparak da kendinizi geliştirebilirsiniz. Sürekli doküman okumak ya da video eğitim izlemek, ilerlemenizi yavaşlatabilir. Teoriden pratiğe geçmek önemli.
inşaAllah

İyi dil-kötü dil diye bir ayrım var mı?
C dili, saydığınız diğer dillerden yaş olarak daha büyüktür. "Eski olan en iyisidir" fikri ise bence anlamsız. Dillerin kullanım alanlarına göre avantajları ve dezavantajları olur. Bugün "assembly" (ASM) ile kod yazıp uygulama geliştiren birini görmedim. Assembly bilmek ile onu yazmak farklı şeyler. İşin temeline kadar dönecek olursak, binary code (0 ve 1) yazmak daha hızlı ve avantajlı olmalı deriz. Ama durum öyle değil.

Hangi dili öğrenmeliyim?
Gelir kaynağı sağlamak için dil öğrenecekseniz, bulunduğunuz ülkede veya globalde hangi dillerde iş imkânı daha fazla, bunu bilmek size yol gösterebilir. Bu sonuçlara bakarak popüler olan dil iyidir, diğerleri kötüdür gibi bir çıkarım yapılmamalı.
Akhi ben python'a kötü C'ye iyi demedim ki. Niçin C'yi tercih ettiğimi açıkladım. Python daha yavaştır ama daha kolaydır ve donanıma doğrudan erişmez C daha hızlıdır ama daha zordur ve donanıma doğrudan erişebilir
 
labirent Çevrimdışı

labirent

İyi Bilinen Üye
Moderatör
Tüm yazılım lisanları (^^) hakkında malumatım yok. Takım tutar gibi "şu dili seçmelisin" demiyorum. Yolun başındayken dilin sınırlarını şahsen dert etmem. İşin mantığını PHP ile öğrenirim, sonra gider Rust yazarım. Donanıma erişmekten neyi kastettiğini bilmiyorum, bu yüzden ilk mesajında bizim sormamızı beklediğin ve cevapladığın soruya değinmek istedim.
 
SalihBeratt Çevrimiçi

SalihBeratt

İyi Bilinen Üye
İslam-TR Üyesi
Tüm yazılım lisanları (^^) hakkında malumatım yok. Takım tutar gibi "şu dili seçmelisin" demiyorum. Yolun başındayken dilin sınırlarını şahsen dert etmem. İşin mantığını PHP ile öğrenirim, sonra gider Rust yazarım. Donanıma erişmekten neyi kastettiğini bilmiyorum, bu yüzden ilk mesajında bizim sormamızı beklediğin ve cevapladığın soruya değinmek istedim.
C kodu doğrudan ASM'ye oradan da binary'ye dönüştürüldüğü için doğrudan donanımın anlayacağı şekilde yazılabiliyormuş C kodu

Python'da ise arada yorumlayıcı olduğu için yorumlayıcı o kodu donanımın anlayacağı hale çeviriyormuş
 
labirent Çevrimdışı

labirent

İyi Bilinen Üye
Moderatör
C kodu doğrudan ASM'ye oradan da binary'ye dönüştürüldüğü için doğrudan donanımın anlayacağı şekilde yazılabiliyormuş C kodu

Python'da ise arada yorumlayıcı olduğu için yorumlayıcı o kodu donanımın anlayacağı hale çeviriyormuş

Evet, C kodu derlendiğinde makine koduna dönüştürülür. Bu, diğer diller için de mümkün. Eğer sıfırdan bir işletim sistemi yazmayı planlamıyorsan, donanım ile yazdığın kod arasında her zaman bir işletim sistemi (OS: Linux, Windows, vb.) bulunacaktır. Yok eğer işletim sistemi yazmayı düşünüyorsan, ben saygılarımı sunar ve susarım.
 
Öğrenen Müslüman Çevrimdışı

Öğrenen Müslüman

İyi Bilinen Üye
İslam-TR Üyesi
zamanında bu kodlama işlerine merak sarmıştım. kursta birçok kod gösterip bu şöyle çalışır şu şöyle yapıyor diye diye 1 ayda (haftada 2 kere giderek sanırım) anca hesap makinesi yapabilmiştik. evde de kodlama denemek istemiştim hepsini unutmuştum. sonra meğer bu normalmiş baya bir pratik yapmam ve google ile içli dışlı olmak gerekiyormuş bilmediğim kodu öğrenmek için. belki bi ara geri dönerim.
bir de her konuyu bulabilmek için ingilizce cidden gerekli. ingilizceniz yoksa bir yandan da ingilizce öğrenin. ingilizceniz yoksa işiniz zor pc işlerinde.
C# tı sanırım.
 
SalihBeratt Çevrimiçi

SalihBeratt

İyi Bilinen Üye
İslam-TR Üyesi
C kodu doğrudan ASM'ye oradan da binary'ye dönüştürüldüğü için doğrudan donanımın anlayacağı şekilde yazılabiliyormuş C kodu

Python'da ise arada yorumlayıcı olduğu için yorumlayıcı o kodu donanımın anlayacağı hale çeviriyormuş
Akhi yanlış biliyormuşum

C kodu doğrudan saf makine koduna dönüştürülüyormuş. Sembolik makine koduna (ASM) dönüştürülme işlemi yokmuş arada

Yine yanlış biliyormuşum. ChatGPT'ye sorduğum sorunun cevabını tam okumadan bu cevabı yazmıştım.

Sual:
C dili önce sembolik makine koduna sonra mı saf makine koduna dönüştürülür? Yahut doğrudan saf makine koduna mı dönüşür


Cevab:
C dili, derlenirken önce sembolik makine koduna değil, doğrudan saf makine koduna dönüştürülür. Ancak, bu süreç birkaç aşamada gerçekleşir ve her aşamanın neyi başardığını anlamak, sorunun cevabını netleştirebilir.

Derleme Süreci​

C dilindeki kaynak kod, doğrudan saf makine koduna çevrilmeden önce birkaç aşamadan geçer. Bu aşamalar şunlardır:

  1. Ön İşlemci (Preprocessing):
    • C dilindeki makro tanımlamaları, #include direktifleri ve #define gibi ön işlemci komutları işlenir.
    • Bu aşama, kaynak kodun genişletilmesi ve sadeleştirilmesi amacıyla yapılır. Örneğin, kütüphaneler (stdio.h, stdlib.h vb.) programa dahil edilir.
  2. Derleme (Compilation):
    • Ön işlemci tarafından düzenlenmiş kod, assembly dili gibi düşük seviyeli bir dile (sembolik makine dili) çevrilir. Bu dil, işlemcinin makine koduna oldukça yakın, ancak hala insanlar tarafından anlaşılabilecek semboller içerir.
    • Çıktı, işlemciye özgü bir assembly kodu dosyası olur. Bu aşamada, C dilindeki yapıların nasıl düşük seviyeli komutlara dönüştüğünü görebilirsiniz.
  3. Assembler (Makine Kodu Çevirme):
    • Assembly kodu, bir assembler programı tarafından saf makine koduna çevrilir. Bu, işlemcinin doğrudan çalıştırabileceği ikili (binary) kodlardır.
    • Saf makine kodu, doğrudan işlemcinin anlayabileceği ve çalıştırabileceği talimatları içerir. Bu kod, .obj veya .o dosya uzantılarıyla birleştirilebilir.
  4. Bağlayıcı (Linker):
    • Son olarak, bağımsız derlenmiş dosyalar ve kütüphaneler (örneğin, stdio.h gibi standart kütüphaneler) bir araya getirilerek çalıştırılabilir bir program oluşturulur. Bu aşamada, tüm fonksiyon ve değişken referansları çözülür.

Yani, C derleyicisinin adım adım yaptığı işlemleri özetlersek:​

  • Önce: C kodu sembolik makine diline (assembly koduna) çevrilir.
  • Sonra: Sembolik makine kodu, saf makine koduna dönüştürülür.
Bu aşamalar arasında derleyici doğrudan saf makine diline çeviri yapmaz; önce bir ara dil olan assembly dili oluşturur, ardından bu assembly kodu makine diline dönüştürülür.
 
Son düzenleme:
Üst Ana Sayfa Alt