Programowanie Komputerów



Podobne dokumenty
MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Podstawy programowania. Wprowadzenie

Języki i paradygmaty programowania - 1

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Microsoft IT Academy kurs programowania

Programowanie komputerów

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

KONSTRUKCJA KOMPILATORÓW

Metody Kompilacji Wykład 1 Wstęp

Programowanie Komputerów

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wstęp do programowania. Wykład 1

Java EE produkcja oprogramowania

Podstawy programowania - 1

Podstawy programowania

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Java jako język programowania

Wstęp do programowania

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie obiektowe zastosowanie języka Java SE

Informatyka I. dr inż. Andrzej Czerepicki.

Podstawy programowania (1)

Programowanie w języku C++ Grażyna Koba

WYKŁAD 1 - KONSPEKT. Program wykładu:

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Środowiska i platformy programistyczne

C# /.NET. Copyright by 3bird Projects 2018,

Utworzenie pliku. Dowiesz się:

Programowanie obiektowe

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie w języku Python. Grażyna Koba

Programowanie obiektowe

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Java Podstawy. Michał Bereta

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Podstawy programowania skrót z wykładów:

Szablony funkcji i klas (templates)

Podstawy Programowania

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Praca w środowisku Visual Studio 2008, Visual C

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Programowanie w C. dr inż. Stanisław Wszelak

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Algorytm. a programowanie -

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Języki programowania zasady ich tworzenia

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawy Programowania. Wykład 1

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Język ludzki kod maszynowy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki

Programowanie C# mgr in. Dariusz Ku. p. 119A

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Instrukcja laboratoryjna cz.3

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

WPROWADZENIE DO JĘZYKA JAVA

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Translacja wprowadzenie

METODY REPREZENTACJI INFORMACJI

Programowanie obiektowe

Programy pomocnicze: diff, make, systemy rcs i cvs, debugger. Zarządzanie wersjami.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Języki i metodyka programowania

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wprowadzenie do programowania

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Wykład 4. Środowisko programistyczne

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

KARTA MODUŁU KSZTAŁCENIA

Zadanie 2: Arytmetyka symboli

Metodyka programowania. Podstawy C#

Podstawy programowania wykład

Transkrypt:

Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 26

1. Zasady Wykład i laboratorium są oceniane osobno. Zaliczenie laboratorium jest na podstawie pracy na zajęciach. Zaliczenie wykładu na podstawie zaliczenia pisemnego na koniec semestru. Strona 2 z 26

2. Pomoc pakietu Visual Studio Dokumentacja dostępna on-line na stronach MSDN Andrew Troelsen, Pro C# 2010 and the.net 4 Platform (cz. 1 i 2, fragmenty cz. 3). Wydanie polskie: 2010 i platforma.net 4.0, Wydawnictwo Naukowe PWN, 2011. Standard ECMA-334 C# Language Specification (obejmuje tylko wersję 1.0, 1.2 i 2.0) Strona 3 z 26

Wprowadzenie do programowania na platformie.net.net Framework jest częścią systemu operacyjnego Windows firmy Microsoft. Na platformę.net składają się dwie części: The common language runtime (CLR) oraz.net Framework class library. CLR jest środowiskiem uruchomieniowym implementującym standard CLI (Common Language Infrastructure, ISO/IEC 23271, ECMA-335). Class Library jest rozbudowaną, zorientowaną obiektowo biblioteką klas, które mogą być użyte do tworzenia różnego rodzaju aplikacji: od tekstowych poprzez graficzne do sieciowych aplikacji opartych na ASP.NET. Strona 4 z 26

Języki na platformie.net C# Visual C++ Visual Basic Visual J# inne Strona 5 z 26

Programy narzędziowe csc.exe - kompilator C# ildasm.exe - deasembler AL.exe - assembly linker vbc.exe - visual basic compiler cl.exe - C, C++ compiler Strona 6 z 26

3. jest językiem stworzonym na potrzeby platformy.net przez firmę Microsoft. Pierwsza szeroko rozpowszechniona implementacja z roku 2000 była częścią tej właśnie platformy. Za twórców języka uważani są Anders Hejlsberg, Scott Wiltamuth i Peter Golde. Istnieje ogólnie dostępny standard C# oznczony ECMA-334, opracowany na podstawie zgłoszenia trzech firm: Microsoft, Intel i Hewlett-Packard. Strona 7 z 26

Implementacje Open Source Obecnie istnieje kilka projektów implementujących ten standard, również z jawnym kodem źródłowym. Przykłady: Mono - projekt open source na licencjach MIT, LGPLv2 i GPLv2 pierwotnie prowadzony przez firmę Novell (obecnie przez Xamarin), (http://www.mono-project.com/). DotGNU Portable.NET - PNET (http://www.dotgnu.org/) inne... Strona 8 z 26

Kolejne wersje języka C# C# 1.0,.NET Framework 1.0, Visual Studio.NET 2002 C# 1.2,.NET Framework 1.1, Visual Studio.NET 2003 C# 2.0,.NET Framework 2.0, Visual Studio 2005 C# 3.0,.NET Framework 3.5, Visual Studio 2008 C# 4.0,.NET Framework 4.0, Visual Studio 2010 C# 5.0,.NET Framework 4.5, Visual Studio spodziewana w 2012 Strona 9 z 26

Motywacja twórców Cele, które przyświecały twórcom języka można zawrzeć w kilku punktach: C# ma być nowoczesnym, łatwym do opanowania językiem obiektowym ogólnego przeznaczenia. Język i jego implementcja powinny zapewniać takie udogodnienia jak: silna kontrola typów, sprawdzanie zakresów tablic, wykrywanie prób użycia niezainicjalizowanych zmiennych i autmatyczne zwalnianie pamięci (ang. garbage collection). Język ma umożliwiać tworzenie alpikacji działających w środowisku rozproszonym. Język ma zapewnić przenośność kodu jak i łatwość jego przyswojenia przez programistów znających C i C++. Strona 10 z 26

Motywacja twórców (2) Język ma wspierać tworzenie aplikacji wielojęzykowych (ang. internationalization). Mimo że projektanci dołożyli starań aby aplikacje tworzone w C# działały szybko i nie używały zbyt wielu zasobów pamięciowych, to należy pamiętać, że język nie został wymyślony po to, by konkurować pod tym względem z C czy asemblerami. Strona 11 z 26

4. Pierwszy program Przykład 1. using System ; public class Test { public static void Main ( ) { Console. WriteLine ( Witaj p r z y j a c i e l u ) ; } } Mówiąc w dużym skrócie powyższy program musi zostać przetłumaczony z kodu źródłowego na kod pośredni lub kod wykonywalny. Program, który do tego służy nazywamy kompilatorem, a sam proces tłumaczenia kompilacją. Strona 12 z 26

Elementy kodu programu Program w języku C# musi zawierać definicję klasy, w której znajduje się się metoda Main oznaczona słowem static. Nasz pierwszy program zawiera tylko i wyłącznie tę metodę, która składa się z jednej instrukcji: Console.WriteLine("Witaj przyjacielu);, ta wypisuje tekst zawarty w cudzysłowie. Strona 13 z 26

Struktura programu Kod programu może zostać umieszczony w jednym bądź wielu plikach. Program składa się głównie z definicji typów (klas). Klasy składają się głównie z metod (funkcji), które z kolei zbudowane są z instrukcji. Każda instrukcja zakończona jest średnikiem. Instrukcje składają się ze słów kluczowych, operatorów, nazw zmiennych, wywołań funkcji, oraz znaków grupujących i separujących (nawiasy, przecinki, średniki). Strona 14 z 26

Uruchomienie programu Program zaczyna działanie od wykonania funkcji Main w głównej klasie programu. Wykonywane są instrukcja po instrukcji w kolejności zgodnej z umieszczeniem w kodzie źródłowym. Pozostałe klasy mogą być napisane przez programistę lub pochodzić z bibliotek. Przed uruchomieniem program należy skompilować i scalić (linkowanie, konsolidacja) z funkcjami bibliotecznymi. Strona 15 z 26

5. Edycja kodu źródłowego Pożądane cechy edytora kodu programu: Podświetlanie składni Wielokrotne cofnij/powtórz Zaznaczanie blokowe Parowanie nawiasów Autowcięcia Autouzupełnianie Ukrywanie części kodu Ukrywanie części tekstu Integracja z kompilatorem Możliwość sprawdzania pisowni (np. w komentarzach) Łatwość obsługi Niska cena Zasady Strona 16 z 26

6. to proces automatycznego tłumaczenia kodu napisanego w jednym języku programowania na inny (kod maszynowy lub kod pośredni). Dane wejściowe najczęściej nazywa się kodem źródłowym. Program wykonujący tłumaczenie to kompilator. Przeważnie kompilacja jest częścią większego procesu tłumaczenia, a tworzony w jej trakcie kod wynikowy jest przekazywany do linkera (konsolidatora). Strona 17 z 26

Proces przetwarzania kodu źródłowego preprocessing - przetworzenie wstępne, na przykład włączenie plików nagłówkowych kompilacja konsolidacja - łączenie skompilowanych modułów i utworzeniu pliku wykonywalnego. Strona 18 z 26

Etapy kompilacji Faza wstępna - odczyt i analiza kodu na podstawie reguł języka, tworzenie reprezentacji pośredniej kodu źródłowego w postać grafu lub drzewa zależności. Analiza leksykalna - rozdzielenie kodu na elementarne jednostki języka programowania zwane tokenami. Analiza składniowa - dopasowanie tokenów do gramatyki języka (sprawdzenie, czy kod źródłowy był poprawny składniowo) Analiza semantyczna - określenie znaczenia poszczególnych tokenów. Przykładem może być sprawdzanie, czy nie występuje niezgodność typów. Optymalizacja - reprezentacja pośrednia jest upraszczana tak, aby program otrzymany na jej podstawie charakteryzował się pewnymi cechami (np. większą wydajnością lub mniejszą objętością). Generacja kodu na podstawie reprezentacji pośredniej generowany jest kod wynikowy. Zasady Strona 19 z 26

Błędy kompilacji Bezproblemowy przebieg kompilacji programu jest rzadkim zjawiskiem nawet u doświadczonych programistów. Przykład 2. using System ; public class Test { public static void Main ( ) { Console. WriteLine ( Witaj p r z y j a c i e l u ) } } Powyższy przykład jest błędny. Próba kompilacji takiego programu zakończy się niepowodzeniem. Strona 20 z 26

Przykładowe komunikaty wyświetlone przez kompilator mogą mieć następującą postać: Zasady Przykład 3. prog.cs(7,3): error CS1525: Unexpected symbol }, expecting ; prog.cs(8,1): error CS8025: Parsing error Compilation failed: 2 error(s), 0 warnings Kompilator uznał, że błąd znajduje się w linii 7 przed symbolem {, mimo że średnik zwyczajowo piszemy bezpośrednio po instrukcji. Mimo to sytuacja jest wielce komfortowa; otrzymaliśmy precyzyjny komunikat o błędzie, który łatwo poprawić. Strona 21 z 26

7. (ang. debugging = odpluskwianie) - to proces śledzenia działania systemu mikroprocesorowego lub programu komputerowego za pomocą specjalnego programu - debugera w celu wychwycenia i naprawy błędów w działaniu uruchamianego urządzenia lub oprogramowania. Istotą uruchamiania przy pomocy debugera jest możliwość wykonywania programu w trybie pracy krokowej lub z zastawianiem tzw. pułapek (ang. breakpoints), czyli miejsc w programie, po osiągnięciu których dalsze wykonywanie programu jest zatrzymywane, a także podglądania i ew. zmiany zawartości rejestrów, pamięci itd. Strona 22 z 26

8. Kod programu możemy podzielić na tak zwane Tokeny (lub leksemy), czyli ciągi znaków rozumiane jako abstrakcyjne jednostki danego języka programowania. W C# tokenami są: Identyfikatory (Nazwy stałych, zmiennych, funckji, klas), np: Test, Main, Słowa kluczowe, np: public, static Literały, np: 42 Operatory i separatory, np:!=, {, } (, ). Strona 23 z 26

Identyfikatory Identyfikatory stosują zalecenia: załącznika 15 do standardu Unicode (ang. Unicode Standard Annex 15). Dodatkowo można stosować znak podkreślenia ( ) również na początku nazwy (jest traktowany jak litera), kody escape, dopuszczalny jest również znak @, jako prefiks dla słów kluczowych. Strona 24 z 26

Literały Literały reprezentują wartość (liczbową, tekstową, itp.) wpisaną bezpośrednio w kod programu. Strona 25 z 26

Operatory arytmretyczne: + - * / % logiczne: &&,,! porównania: <, <=, >, >=, ==,!= przypisania: = bitowe: & ^ ~ << >> Strona 26 z 26